[英]Fail Add Active Navigation Class Based on URL
我的博客上有一个基本的菜单结构,使用以下代码。 我尝试过每一个片段,也在这里做了一些类似的话题,但是没有用。 我要做的就是根据URL向我的导航菜单添加活动类。 因此,网站上的访问者或用户知道他所在的页面或网站的一部分。 因此,有人可以简单解释一下在何处以及如何在javascript中添加代码吗?
菜单结构
<div id="navigation">
<div class="backer" style="position: relative;">
<div class="header-inner-wrap">
<div class="header section" id="header">
<div class="widget Header" data-version="1" id="Header1">
<h1><div id="header-inner">
<a href=""></a></div></h1>
</div></div>
</div>
<nav class="main-nav" itemscope="itemscope" role="navigation">
<ul class="menu">
<li><a href="">About</a></li>
<li><a href="">Tutorial</a></li>
<li><a href="">Tips</a></li>
</ul>
</nav>
</div>
</div>
使用Javascript:
$(function() {
var pgurl = window.location.href.substr(window.location.href
.lastIndexOf("/")+1);
$("menu li a").each(function(){
if($(this).attr("href") == pgurl || $(this).attr("href") == '' )
$(this).addClass("active");
})
});
CSS:
.menu li .active{border-bottom:3px blue solid;}
提前致谢
您可能要检查菜单类的选择器是否匹配:
$("menu li a").each(function(){
应该是
$(".menu li a").each(function(){
编辑:根据新信息,以下更改应可解决您的问题。
从
var pgurl = window.location.href.substr(window.location.href.lastIndexOf("/")+1);
至
var pgurl = window.location.href;
而且or
你的病情的一部分是不必要的。 所以从这里改变
$("menu li a").each(function(){
if($(this).attr("href") == pgurl || $(this).attr("href") == '' )
$(this).addClass("active");
})
对此
$(".menu li a").each(function(){
if($(this).attr("href") == pgurl){
$(this).addClass("active");
}
});
除了解决您眼前的问题之外,您还应该努力学习正确的javascript,而不是复制和使用摘要,以便可以轻松分析代码并找出问题的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.