2010-07-14 54 views
2

我試圖將未知的樣式應用於未知的選擇器,它似乎不能使用jQuery的.css()方法應用速記CSS。它是否正確?有沒有解決辦法?我可以使用jQuery的.css()方法將簡寫css應用於元素嗎?

請注意,我正在動態構建對象以傳遞到.css()並且不想使用.css('background','#000')語法。

$('#example').css({background:'#000000 url("images/bg.gif") repeat-x scroll 0 0 transparent'}); 

上面的代碼不起作用。但是,下面的代碼確實如此。

$('#example').css({background:'#000'}); 

這樣做。

$('#example').css({background:'url("images/bg.gif")'}); 

但是,當它們一起使用時,它們自然會相互覆蓋。有什麼建議麼?

回答

4
background: #000000 url("images/bg.gif") repeat-x scroll 0 0 transparent; 

...是無效的CSS。你已經指定了背景顏色兩次(#000000和透明)。它應該工作,如果你使用有效的CSS。

也就是說,使用類和外部樣式表通常是更好的選擇。

+0

Oo!好點子! – 2010-07-14 20:43:44

+0

omg,我覺得很愚蠢...... – 2010-07-14 20:44:15

2

你的更好的選擇是在你的CSS文件中有一組預定義的CSS類,然後根據需要隨時應用這些目標樣式。

這有一個額外的好處,即保持您的jQuery代碼降至可讀和可管理的級別。

因此,而不是寫:

$('#example').css({background:'url("images/bg.gif")'}); 

你可以選擇簡單的:

$('#example').addClass('myClass1'); 
+0

我想將未知的樣式應用於未知的選擇器,所以這不是一個選項,但將是明顯的選擇。 – 2010-07-14 20:45:27

相關問題