在我的程序中,我有3个部门,分别为“信息”,“兴趣”和“墙”。
我希望这些分区在用户单击时更改其颜色。
最初,所有3个划分类均具有相同的颜色#dcdcdc
当用户单击其中之一时,我想将其颜色更改为#999,但其他分区的颜色必须保持为#dcdcdc

这大部分工作正常,但是当我单击第二分区时,前一个不会将其颜色更改回#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>

最佳答案

的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规则,并且可以从功能层更好地识别表示层

编辑:在用户请求后在评论中更新。

09-20 16:30