jquery addClass vs .css()

时间:2013-08-29 16:43:13

标签: jquery css

我有一个函数,我在click事件上设置背景。 我尝试了两种方法,期望两种方式都可以工作,但只有.css()版本有效,为什么addClass不工作?

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

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

和clickColor的css是

.clickColor{
    backgroundColor: #444444;
}

3 个答案:

答案 0 :(得分:1)

检查https://developer.mozilla.org/en-US/docs/Web/CSS/background-color

.clickColor {
    background-color:#444444;
}

它应该是 background-color 而不是 backgroundColor

值得注意的是,jQuery在用作属性时需要使用css属性的camel大小写,但如果指定为字符串,则需要使用&#34; background-color&#34; < / strike>

^根据http://api.jquery.com/css/进行更正

答案 1 :(得分:0)

Css更喜欢内联样式来应用类的样式。 .css()应用内联样式,因此最有可能覆盖其他所有规则。 addClass()添加了一个偏好较小的类。

答案 2 :(得分:0)

在CSS中,它不是“背景颜色”吗? 在您的情况下,您的函数包含一个错误,实际上如果您在没有引号的jquery选择器中发现e的值,它将无效。

此处:http://jsfiddle.net/zPDpC/2/

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