2012-07-30 67 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