我觉得自己像个白痴,因为我今天早些时候提出了一个非常类似的问题,但现在我已经再次申请,我遇到了类似的问题。
我正在使用PHP从博客模板中加载数据库中的页面元素。这是一个内置菜单和基于我的PHP .active
样式:
<div role="navigation" id="menu">
<div class="page-menu">
<ul>
<li class="list-item"><a href="/anchor/posts" title="Posts">Posts</a></li>
<li class="list-item"><a href="/anchor/demo-page-3" title="Demo Page 3">Demo Page 3</a></li>
<li class="list-item"><a href="/anchor/demo-page-4" title="Demo Page 4">Demo Page 4</a></li>
<li class="list-item"><a href="/anchor/demo" title="demo page">demo</a></li>
</ul>
</div>
<style>
.active {background-color: #0d597e; }
</style>
这是我的剧本:
$(document).ready(function(){
var current = location.pathname;
$('.page-menu li a').each(function(){
var $this = $(this);
if($(this).attr('href').indexOf(current) !== -1){
$this.addClass('active');
}
})
})
现在,我知道它有效,因为&#34;帖子&#34;添加了活动类,其他页面在单击时都不会执行。
我也用alert(location.pathname)
进行了测试,所有这些都回来了。我哪里错了?我把头发拉出来试图让它分类。
答案 0 :(得分:2)
您在帖子页面上未获得的视频上的demo-page-3和demo-page-4中的控制台出错。 '未捕获类型错误 - 无法读取未定义的'替换'属性。这个JS错误会阻止进一步运行JS,并且不会调用你的菜单函数。修复此错误,您的菜单将有效。