2013-10-28 63 views
0

菜单链接时,我想激活或点击使用jQuery菜单链接时添加类活跃在菜单标签链接和: 我有HTML激活或添加上的菜单的选项卡链接类主动点击使用jQuery

<div id="top" class="shadow"> 
<ul class="gprc"> 
<li><a href="http://www.domain.com/">Home</a></li> 
<li><a href="http://www.domain.com/link1/">Text1</a></li> 
<li><a href="http://www.domain.com/link2/">Text2</a></li> 
<li><a href="http://www.domain.com/link3/">Text3</a></li> 
<li><a href="http://www.domain.com/link4">Text4</a></li> 
</ul> 
</div> 

我发现下面的脚本是这样做的。 JQuery的

$(document).ready(function(){ 
    $(function(){ 
    var url = window.location.pathname, 
    urlRegExp = new RegExp(url.replace(/\/$/,'') + "$"); 
    $('a').each(function(){ 
    if(urlRegExp.test(this .href.replace(/\/$/, ''))){ 
    $(this).addClass('active'); 
    } 
}); 
}); 
}); 

只是它会为整个网页,我怎么可能只对我张贴在HTML指定的菜单做。

回答

1

你可以这样做:

$(function() { 
    var url = window.location.pathname, 
     urlRegExp = new RegExp(url.replace(/\/$/, '') + "$"); 
    $('#top a').each(function() { 
     if (urlRegExp.test(this.href.replace(/\/$/, ''))) { 
      $(this).addClass('active'); 
     } 
    });  
}); 

添加active类与IDtopdiv只有适当的链接,使用正确的选择$('#top a'),而不是在页面上的所有链接上实现它。

+1

有一个问题,当我点击“家”或link1我得到所有活动选项卡。 – Adrian

+0

@Adrian我有同样的问题。我通过在两个地方删除“.replace(/ \/$ /,'')”来解决它。 – trojan

1

您可以指定要用于该工作只有在它里面“GPRC” UI元素一个锚元素这样的:

$('.gprc a').each(function(){ 
    if(urlRegExp.test(this .href.replace(/\/$/, ''))){ 
    $(this).addClass('active'); 
    } 
}); 
1

试试你的选择范围界定到菜单的专区内唯一的锚标记。

如:

$(document).ready(function(){ 
    $(function(){ 
    var url = window.location.pathname, urlRegExp = new RegExp(url.replace(/\/$/,'') + "$"); 
    $('#top a').each(function(){ 
     if(urlRegExp.test(this .href.replace(/\/$/, ''))){ 
     $(this).addClass('active'); 
     } 
    }); 
    }); 
}); 
相关问题