2013-08-29 51 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');