基于url的JQuery活动类未按预期工作

时间:2014-10-20 18:04:31

标签: jquery

我为什么以下逻辑没有按预期工作而感到茫然。我想在点击时删除所有活动的类,然后将该类添加回仅具有与该URL对应的href的li。

var str=location.href.toLowerCase();
  $(".navlinks li a").each(function() {
  if (str.indexOf(this.href.toLowerCase()) > -1) {
   $("li.active").removeClass("active");
  $(this).parent().addClass("active");
  }
 });

<ul class="navlinks">
      <i class="fa fa-bars"></i>
      <li><a href="/give">Give</a></li>
      <li><a href="/contact">Contact</a></li>
      <li><a href="/volunteer">Volunteer</a></li>
      <li><a href="/events">Calendar</a></li>
      <li><a href="/services">Services</a></li>
      <li><a href="/about">About</a></li>
      <li><a href="/">Home</a></li>
    </ul>

目前,点击时每个li都会附加一个空白类。

1 个答案:

答案 0 :(得分:0)

把它放在if语句中:

 $("li.active").removeAttribute("class");
 $(this).parent().addClass("active");

对我而言,它有效。

编辑:把它放在外面:

    Var isexecutedonce = false;

在foreach循环中写道:

   If(!isexecutedonce){
   $("li.active").removeAttribute("class");
   Isexecutedonce = true;
   }

如果出现以下情况:

     $(this).parent().addClass("active");