如何使用jquery更改导航链接的颜色或背景颜色?

时间:2017-10-16 04:03:37

标签: javascript jquery html css

有人知道,我的代码有什么问题吗?当您在页面中时,当前颜色或背景将发生变化。例如导航的颜色是红色,所以当你去约会我们时,它的颜色将是黄色,其余的链接仍然是红色,  这是我的小提琴:

https://jsfiddle.net/nhyr8pnd/

 <ul class="topnav" id="main-menu">
      <li ><a href="#" class="active" ><i class="fa fa-home" aria-hidden="true"></i> Home</a></li>
      <li><a href="#" ><i class="fa fa-file" aria-hidden="true"></i> Home2</a></li>
      <li><a href="#" ><i class="fa fa-codepen" aria-hidden="true"></i> Home3</a></li>
      <li><a href="#" ><i class="fa fa-globe" aria-hidden="true"></i> Home4</a></li>
  </ul>


#main-menu li {
display: inline-block;
font-family: 'Raleway', sans-serif;

padding: 17px 25px;
}
#main-menu li a {
   color:#333333;
   font-size:15px;
}
#main-menu li.active a {
 color:#0198cf;
}
 #main-menu li:last-child  {
 padding-right: 0;
}
.active{background-color:#ccc;}



$(document).ready(function(e){
  $('#main-menu li').click(function(e) {
    $('#main-menu li').removeClass('active');
    $(this).addClass('active');
  });
});

Ps:我使用header.php,所以我不需要复制每个页面中的所有导航,所以基本上如果答案是在每个页面中放置一个活动的类不是  答案

2 个答案:

答案 0 :(得分:1)

您正在选择li而不是在click事件中选择li的内部。

$(document).ready(function(e){
    $('#main-menu li').click(function(e) {
      $('#main-menu li a').removeClass('active');
      $(this).children("a").addClass('active');
    });
  });

答案 1 :(得分:0)

请检查。这是工作。你忘了把jQuery min文件。

$(document).ready(function(e){
  $('#main-menu li a').click(function(e) {         
    $('#main-menu li a').removeClass('active');
    $(this).addClass('active');
  });
});
#main-menu li {
  display: inline-block;
  font-family: 'Raleway', sans-serif;
  padding: 17px 25px;
}
#main-menu li a {
  color:#333333;
  font-size:15px;
}
#main-menu li.active a {
  color:#0198cf;
}
#main-menu li:last-child  {
  padding-right: 0;
}
.active{
  background-color:#ccc;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="topnav" id="main-menu">
  <li ><a href="#" class="active" ><i class="fa fa-home" aria-hidden="true"></i> Home</a></li>
  <li><a href="#" ><i class="fa fa-file" aria-hidden="true"></i> Home2</a></li>
  <li><a href="#" ><i class="fa fa-codepen" aria-hidden="true"></i> Home3</a></li>
  <li><a href="#" ><i class="fa fa-globe" aria-hidden="true"></i> Home4</a></li>
</ul>