2012-05-07 53 views
0

我有一個灰色背景的按鈕列表,當單擊按鈕時,我想將按鈕的背景顏色更改爲藍色。我已經嘗試過jQuery的「addClass」,並添加了一個具有不同背景的類,但它沒有覆蓋元素背景(使用默認類設置)。我可以刪除默認類,但我需要保留它,因爲它用於引發其他事件。添加覆蓋元素背景屬性的類

我該如何做到這一點(如果甚至可以這樣)?

在此先感謝!

+0

小心地顯示您的代碼? –

回答

2

您可以使用內聯css,它將覆蓋默認值;或者在你使用jQuery.addClass()添加的類中使用!important;即.btnCool {background:red!important;}

+0

我真的很喜歡這個簡單的解決方案,非常感謝! – holyredbeard

0

我認爲問題出在您的.css文件中。 嘗試設置包含這兩個類的新CSS規則。

你也會有這樣的:

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

希望它能幫助!

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

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

你或許應該添加一些代碼的例子,因爲這可以有許多不同的變化,但在這裏就是答案假設大部分代碼是非常標準:

CSS樣式有一個層次結構,可以幫助他們決定使用哪個屬性。

例如:

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

,只要你有一個按鈕,這也是點擊,因爲它指的是元素通過2班,而不只是一個第二條規則將贏得爭論。

非常相似的方式,如果您將顏色設置爲元素兩次,一旦使用它的類來引用它,並且一旦使用它的id,則id引用下的規則將獲勝,因爲它具有更高的優先級