添加覆盖元素background属性的类

时间:2012-05-07 13:49:27

标签: jquery css background override

我有一个带灰色背景的按钮列表,当点击一个按钮时,我想将按钮的背景颜色更改为蓝色。我已经尝试了jQuery的“addClass”并添加了一个具有不同背景的类,但它没有覆盖元素背景(使用默认类设置)。我可以删除默认类,但我需要保留它,因为它用于触发其他事件。

我该怎么做(如果这种方式甚至可能的话)?

提前致谢!

5 个答案:

答案 0 :(得分:2)

您可以使用内联css,它将覆盖默认值;或者在使用jQuery.addClass()添加的类中,使用!important;即.btnCool {background:red!important;}

答案 1 :(得分:0)

我认为问题出在您的.css文件中。 尝试设置包含两个类的新css规则。

你会有这个:

.class1 { styles }
.class1 .class2 { styles } //more specific, higher priority

希望它有所帮助!

答案 2 :(得分:0)

$('.btns').click(function(){
   this.css({backgroundColor:'blue'});
});

.blue{background-color:blue!important}
$('.btns').click(function(){
   this.addClass('blue');
});

答案 3 :(得分:0)

您可能应该添加一些代码示例,因为它可以有许多不同的变体,但这里的答案是假设您的大部分代码非常标准:

CSS样式有一个层次结构,可以帮助他们决定使用哪个属性。

示例:

.button{
   background: blue;
}
.button.clicked{
   background: red;
}

每当你点击一个按钮时,第二个规则将赢得参数,因为它通过 2个类 而不是一个来引用元素。< / p>

如果你将一个颜色设置为一个元素两次,一旦使用它的类来引用它,并且一旦使用它的id,id参考下的规则将获胜,因为它具有更高的优先级

答案 4 :(得分:0)

试试这个fiddle