jQuery .addClass没有效果

时间:2011-02-01 16:22:51

标签: jquery addclass

其他编码人员,只是遇到了.addClass方法的一个奇怪的(至少对我来说)行为。我试图通过使用.addClass方法和更改div的背景颜色的.highlight类在鼠标悬停时突出显示一个项目(div)。 (我正在使用jQuery而不是css:hover方法。)

代码工作意义,.highlight类被添加到div但颜色不会改变。只有当div的默认css类没有定义背景颜色时,颜色才会改变。换句话说,如果div被定义为包含说背景颜色的类:白色;添加.highlight类但颜色不会改变。

这是正常还是我错过了什么?现在,我正在使用.css('background-color',....)来突显亮点,但我很好奇为什么.addClass方法不起作用。

感谢。

5 个答案:

答案 0 :(得分:11)

您的原始CSS类会覆盖新的类。

您可以通过将!important添加到悬停规则,或者使其选择器更具体,或者在CSS中的原始类之后移动它来阻止这种情况。

答案 1 :(得分:2)

也许你应该尝试在CSS中设置!important标志。

.highlight {
  background-color: #ff0000 !important;
}

答案 2 :(得分:2)

我怀疑问题在于如何应用原始背景颜色并与cascade priority and specificity相关。原始背景颜色的CSS选择器可能比类更具体,并且优先。例如,通过id或它在DOM中的位置指定元素的选择器比简单的类指示符更具体。使类声明!important或降低原始CSS选择器的特异性(如果可能)都应该有效。

答案 3 :(得分:1)

尝试

background-color:#f00 !important;

答案 4 :(得分:1)

如果你有两个类,并且它们都指定了背景颜色,那么使用哪种颜色取决于定义两个类的样式的位置。