2012-09-09 51 views
0

我試圖通過添加一個具有另一種背景色的新類來更改背景色。但顏色不會改變。它仍然是相同的顏色!我必須先移除舊的背景顏色嗎?我猜我的代碼應該工作!?使用jQuery addClass更改背景

$(".displayControl a:first").addClass("activeButton"); 

CSS的

.displayControl 
{ 
padding: 20px 0 0 0; 
float: right; 
} 

.displayControl a 
{ 
background: #B7BABD; 
margin: 0 5px 0 0; 
padding: 5px 10px 5px 10px; 
color: #ffffff; 
} 

.activeButton 
{ 
background: #83AEE6; 
} 
+0

帖子相關的標記或鏈接的jsfiddle,所以我們可以理解你的問題更好。 – Jashwant

+0

jsfiddle請..需要看到選擇器正在工作.. – ffffff01

回答

4

您正在使用CSS的 「專一」 的規則打敗。更具體的指令是儘管在樣式表中更高,但贏得了一天。

嘗試將最後指令:

.displayControl a.activeButton 
{ 
background: #83AEE6; 
} 
+0

工作很好!謝謝! –

1

你.activeButton CSS聲明是不夠具體,在「.displayControl一個」選擇更爲具體,以便將使用該聲明的背景(它有優先權通過較不具體的.activeButton聲明)。你應該讓你的activeButton選擇更具體的,是這樣的:

.displayControl a.activeButton{ 
    background: #83AEE6; 
} ​ 

working fiddle

1

.displayControl a有更多的優先級比.activeButton

試試這個,

.displayControl 
{ 
padding: 20px 0 0 0; 
float: right; 
} 

.displayControl a 
{ 
background: #B7BABD; 
margin: 0 5px 0 0; 
padding: 5px 10px 5px 10px; 
color: #ffffff; 
} 

.displayControl .activeButton 
{ 
background: #83AEE6; 
}​ 

Demo

0

kreativ,

請你試試這個:

<div class='asd'> 
    Something 
    </div> 

    .asd{background:#B7BABD;} 
    .new{background:red;} 

    $('div.asd').addClass(function(){ 
    $(this).css('background',''); 
    $(this).addClass('new');  
    }); 

看到它在http://jsfiddle.net/QV2m3/

感謝