2012-07-30 74 views
5

我试图将样式动态应用于我的页面中的几个下拉列表。使用jQuery addClass确实可以将该类添加到所有“选择”元素,因为我可以从Chrome控制台中看到这一点。但是样式不适用于元素。jQuery addClass不会动态应用样式

现在,如果我手动将该类分别添加到每个select元素,然后保存该页面并刷新它,该样式将应用于该元素。

任何想法为什么样式不适用于jQuery类注入?

$("select").addClass("select js-select"); 
+0

你可以在jsFiddle上发布一个例子吗? – j08691 2012-07-30 20:07:30

+0

你可以发布一个HTML和CSS的样本吗? – hradac 2012-07-30 20:10:48

+0

请张贴小提琴。帮助我们帮助你! – SexyBeast 2012-07-30 20:12:22

回答

2

你说样式不适用,但是选择输入中添加了“select js-select”类吗?然后,一定有一些问题与CSS或浏览器。 (“select”).addClass(..)应该可以工作,不需要您通过ID或类来指定。

+0

你是对的,一旦我意识到他实际上是针对select元素的。 – Chris 2012-07-30 20:35:37

+0

现在已解决。这里是注射器正常工作的小提琴。问题是与CSS和JavaScript包括。当他们在小提琴中作为资源添加它们时,他们不能正常工作,但是当将它们添加为链接时,它可以正常工作。小提琴:[链接](http://jsfiddle.net/5qKV2/) – 2012-07-30 21:54:00

+0

那么现在一切正常?乐于帮助 ;)。 – LazyTarget 2012-07-30 22:12:22

2

这个例子的工作原理:

<p><a href="#" id="clicker">Add Class</a></p> 
<div id="select">Hello World</div> 

的JavaScript

$("#clicker").click(function() { 

    $("#select").addClass("select js-select"); 
}); 

从看你的代码,它似乎在$( “选择”)应该有任何一个ID或类选择在上面。通过使用其中一个选择器,您的代码将知道应用样式的目标。否则你的代码工作正常。

祝你好运,并希望这有助于。

+0

这里是jsfiddle,希望你们能帮助我:[link](http://jsfiddle.net/gc3wQ/2/) – 2012-07-30 20:28:56

0

如果将onDomReady更改为onLoad,则可以正常工作。 如http://jsfiddle.net/gc3wQ/9/

+0

仍然无法正常工作。应用的样式非常丰富,并且非常引人注目。我看到使用'onLoad'注入类,但是样式不适用。但是,如果您手动将类放入select元素中,则会应用样式。 – 2012-07-30 20:52:17

+0

现在,它的工作原理,但只在jsFiddle没有。 http://jsfiddle.net/gc3wQ/11/ 采取习惯把你所有的jQuery代码包装在: $(document).ready(function(){ }); 另请参见:http://docs.jquery.com/Tutorials:Introducing_%24%28document%29.ready%28%29 – LazyTarget 2012-07-30 21:16:37

+0

您是否看到在小提琴中应用的样式?我仍然没有看到他们。请首先手动添加样式,以了解我想要注入的样式。我将这些样式注入到页面上的动态表单中,因此理论上如果我可以将样式注入到在dom上创建的select元素,我应该也可以将样式注入到动态创建的元素中。 – 2012-07-30 21:25:30