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

Php 活动类未应用于某些菜单项,php,jquery,css,Php,Jquery,Css,我觉得自己像个白痴,因为今天早些时候我问了一个非常类似的问题,但现在我又去应用它了,我遇到了一个类似的问题 我正在使用一个博客模板,使用PHP从数据库加载页面元素。这是一个基于我的PHP的内置菜单和.active样式: <div role="navigation" id="menu"> <div class="page-menu"> <ul> <li class="list-item

我觉得自己像个白痴,因为今天早些时候我问了一个非常类似的问题,但现在我又去应用它了,我遇到了一个类似的问题

我正在使用一个博客模板,使用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>
现在,我知道它是有效的,因为“Posts”添加了活动类,其他页面在单击时都不会添加

我还使用
alert(location.pathname)
进行了测试,结果都是正确的。我哪里做错了?我正在努力解决这个问题


您在视频的demo-page-3和demo-page-4的控制台中出现了一个错误,而您在posts页面上没有看到该错误。”未捕获类型错误-无法读取未定义的“replace”属性。此JS错误将停止进一步的JS运行,并且不会调用您的菜单函数。修复此错误,您的菜单将正常工作。

因此我可以看到。。。正确的
活动
类在一瞬间被添加,然后被删除?或者这仅仅是显示的
:active
状态?
$(this).attr('href').indexOf(current)
-为什么一个值(应该返回什么
.attr()
)会有索引?此外,您永远不会重置当前的
@fizzix它只是GIF中的一个跳跃…录制了~15fps,仅导出10帧左右。据我所知,活动状态是不适用的。如果没有。你能帮我们做一个吗?你的if($(this).attr('href').indexOf(current)!=-1){将不起作用,因为anchor demo将为所有3个演示页面返回0,但请尝试使用==current而不是indexOfHoly垃圾,你是我的英雄。我知道我有这个错误,但我不知道它停止了所有脚本的运行。我只是将这个移到页脚顶部,它正在工作。谢谢。@BrianBennett不用担心。JS就是这样,如果有这是一个错误,下面的任何JS都不会运行。您应该修复该错误,或者如果不能,至少将其放入try catch中。我的脚本目前非常无序。今天的任务是拆分不同的函数,以便一次中断不会影响需要运行的其他函数。再次感谢。
$(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');
          }
        })
      })