2013-08-29 111 views
-2

我有一個功能,我設置一個單擊事件的背景。 我嘗試了兩種方法,期望兩者都能工作,但只有.css()版本可以工作,爲什麼addClass不工作?jquery addClass vs .css()

function foo(e){ $("#" + e).css('backgroundColor', '#444444');} 

function bar(e){$("#" + e.id).addClass('clickColor');} 

和clickColor的CSS是

.clickColor{ 
    backgroundColor: #444444; 
} 
+2

這可能是因爲CSS規則優先級的,一旦你把它比,具有類屬性設置規則優先級一個內嵌的規則。 –

+0

如何被這兩個函數調用 –

+0

這也不要緊,它被稱爲 – bmw0128

回答

0

「背景色」屬性Css更喜歡內聯風格來應用類風格。 .css()應用內聯樣式,因此它很可能會覆蓋所有其他規則。 addClass()添加了一個較少偏好的類。

0

在CSS中,它不是「背景色」嗎? 在你的情況,你的函數包含一個錯誤,事實上,如果你發現你的jquery選擇器中的值沒有引號,它將無法正常工作。

這裏:http://jsfiddle.net/zPDpC/2/

$('#'+e+'').css('background-color', '#444444');