2015-12-14 38 views
0

所以我在我的标题上有这个导航,但问题是当我点击链接并将我重定向到该页面时,它失去了活动类。任何建议?如何在重定向后在链接上设置活动类?

<nav> 
    <div class="menu-topmenu-container"> 
    <ul id="menu-topmenu" class="menu"> 
     <li id="whats-on" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-53"> 
     <a href="#whatson" class="active">What’s On</a> 
     </li> 
     <li id="menu-item-52" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-52"> 
     <a href="visiting-us">Visiting Us</a> 
     </li> 
     <li id="menu-item-46" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-33 current_page_item menu-item-46"> 
     <a href="collections-research">Collections &amp; Research</a> 
     </li> 
     <li id="menu-item-50" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-50"> 
     <a href="learning">Learning</a> 
     </li> 
     <li id="menu-item-49" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-49"> 
      <a href="get-involved">Get Involved</a> 
     </li> 
    </ul> 
    </div> 
</nav> 

我试过,但它不工作:

$(function(){ 
    var href=window.location.href; 
    $('nav a').each(function(e,i){ 
    if (href.indexOf($(e).attr('href'))>=0) 
    { 
     $(e).addClass('active'); 
    } 
    }); 
}); 

回答

7

变化ethis,怎么eindex

$(function() { 
    var href = window.location.href; 
    $('nav a').each(function(e,i) { 
    if (href.indexOf($(this).attr('href')) >= 0) { 
     $(this).addClass('active'); 
    } 
    }); 
}); 
+0

当你使用'.each()'时,第一个参数实际上是元素而不是事件。 '每个'中都没有事件。仅仅因为他称变量“e”并没有说明它内部的实际值。 –

+2

@StephanMuller不过,这里'e'是索引。 –

+0

@StephanMuller更正了答案。谢谢。 –