活动类未应用于某些菜单项

时间:2014-10-08 23:55:58

标签: php jquery css3

我觉得自己像个白痴,因为我今天早些时候提出了一个非常类似的问题,但现在我已经再次申请,我遇到了类似的问题。

我正在使用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;添加了活动类,其他页面在单击时都不会执行。

The post page gets the active class, none of the others do when clicked

我也用alert(location.pathname)进行了测试,所有这些都回来了。我哪里错了?我把头发拉出来试图让它分类。

JSFIDDLE

1 个答案:

答案 0 :(得分:2)

您在帖子页面上未获得的视频上的demo-page-3和demo-page-4中的控制台出错。 '未捕获类型错误 - 无法读取未定义的'替换'属性。这个JS错误会阻止进一步运行JS,并且不会调用你的菜单函数。修复此错误,您的菜单将有效。