2012-02-20 128 views
2

在我的計劃不止一個部門我有3個師帶班的「信息」,「興趣」和「牆」。 我希望這些部門在用戶點擊它時改變顏色。 最初所有3個師的班級顏色相同#dcdcdc。 當用戶點擊其中的1我想它的顏色改變爲#999,但其他部門的顏色必須保持#dcdcdc處理在JavaScript

這重要的一部分工作正常,但是當我在第2師點擊,以前不改變它的顏色回#dcdcdc

JavaScript部分。

$(document).ready(function(){ 
$('#pro_head > div').click 
(
    function() 
    { 
    $(this).css("background-color", "#999"); 
    $(this).css("font-weight", "bold"); 
    }, 
); 
}); 

HTML部分:

<div pro_head> 
    <div class="information"></div> 
    <div class="interest"></div> 
    <div class="wall"></div> 
</div> 
+0

爲什麼怪異的縮進?你也有一個意想不到的'','''',' – elclanrs 2012-02-20 09:38:44

回答

3

CSS

.selected { 
    background-color: #999; 
    font-weight : bold; 
} 

JS

$(document).ready(function(){ 
    var divs1 = $('#pro_head1 > div'), /* I'm guessing selectors */ 
     divs2 = $('#pro_head2 > div'), 
     addHandler = function(divs) { 
     divs.on('click', function() { 
      divs.removeClass('selected'); 
      $(this).addClass('selected'); 
     }); 
     }; 

addHandler(divs1); 
addHandler(divs2); 

}) 

的想法是創建一個對選擇的劃分要應用的特殊類(並在別處刪除)。通過這種方式,你可以管理複雜的風格,而無需指定JS裏面所有的CSS規則,你可以更好地從功能層識別表象層

編輯:在評論的用戶請求後更新。

+0

父div的'id'也需要固定,但+1。 – 2012-02-20 09:40:56

+0

感謝這一個也在工作 – 2012-02-20 09:48:23

+0

這裏有一個問題,我有另一部分在頁面上工作在相同的邏輯,但只有一個部分工作在一個時間,我該怎麼辦? – 2012-02-20 09:56:46

0

你可以做

$(document).ready(function(){ 
$('#pro_head > div').click 
(
    function() 
    { 
    var divs = $('#pro_head > div'); 
    divs.css("background-color", "#dcdcdc"); 
    divs.css("font-weight", "normal"); 
    $(this).css("background-color", "#999"); 
    $(this).css("font-weight", "bold"); 
    }, 
); 
}); 
+0

非常感謝......它的工作方式完全符合我的要求。 – 2012-02-20 09:46:43