基于URL添加活动导航类

我试图根据页面加载后所处的页面,将一个active类(即class=“active”)添加到相应的菜单列表项中。下面是我现在的菜单。在这方面,我已经尝试了我能找到的每一段代码,但没有任何效果。那么,有人能简单地解释一下在哪里以及如何添加javascript来定义这个任务吗

<ul id=“导航”>
<li id=“导航主页”&gt&书信电报;a href=”https://stackoverflow.com/questions/20060467/home.aspx“>主页&lt/a&gt&lt/李>
<li id=“navmanage”&gt&书信电报;a href=”https://stackoverflow.com/questions/20060467/manageIS.aspx“>管理&lt/a&gt&lt/李>
<li id=“navdocso”&gt&书信电报;a href=”https://stackoverflow.com/questions/20060467/docs.aspx“>文件&lt/a&gt&lt/李>
<li id=“navadmin”&gt&书信电报;a href=”https://stackoverflow.com/questions/20060467/admin.aspx“>管理小组&lt/a&gt&lt/李>
<li id=“navpass”&gt&书信电报;a href=”https://stackoverflow.com/questions/20060467/past.aspx“>查看过去&lt/a&gt&lt/李>
&lt/ul>

下面是一个javascript示例,我将它放在我的站点主控中的head标记中。我做错了什么

$(文档).ready(函数(){
$(函数(){
$('li a')。单击(函数(e){
e、 预防默认值();
$('a').removeClass('active');
$(this.addClass('active');
});
});
});

这不起作用的原因是javascript正在执行,然后页面正在重新加载,这会使“active”类无效。您可能想做的是:

$(函数(){
var current=location.pathname;
$('#nav li a')。每个(函数(){
var$this=$(this);
//如果当前路径与此链接类似,请将其激活
if($this.attr('href').indexOf(当前)!=-1){
$this.addClass('active');
}
})
})

有一些情况下,这将不起作用(多个类似的指向链接),但我认为这可能对你有用

发表评论