Jquery addClass&;在nav.php中删除类

Jquery addClass&;在nav.php中删除类,jquery,addclass,removeclass,Jquery,Addclass,Removeclass,我的根目录中有一个nav.php,我使用 这样我就可以在一个文件中进行编辑,而更改将在整个网站上生效。我试图在鼠标单击时删除类,并在新单击的菜单项上添加类。下面是代码,我就是不能让它工作 <script> $('li').click(function(){ $('li.active').removeClass('active'); $(this).addClass('active'); }); </script>

我的根目录中有一个nav.php,我使用

这样我就可以在一个文件中进行编辑,而更改将在整个网站上生效。我试图在鼠标单击时删除类,并在新单击的菜单项上添加类。下面是代码,我就是不能让它工作

<script>
    $('li').click(function(){
        $('li.active').removeClass('active');
            $(this).addClass('active');
    });
</script>

$('li')。单击(函数(){
$('li.active').removeClass('active');
$(this.addClass('active');
});
这是网址


谢谢

这有几个问题

查询选择器$('li')肯定会匹配页面上的多个元素,因此您需要遍历所有元素并添加click()函数,如:

$('li').each(function() {
  $(this).click(function(thisLi) {
    // assuming there is only one li.active...
    $('li.active').removeClass('active');
    thisLi.addClass('active');
  });
});
此外,还需要将其加载到匹配的元素中,方法是将其放入$(document).ready()函数或类似函数中:

$(document).ready(function() {
    $('li').each(function() {
      $(this).click(function(thisLi) {
        // assuming there is only one li.active...
        $('li.active').removeClass('active');
        thisLi.addClass('active');
      });
    });
});

您提供的链接中的源代码中没有您的上述脚本。实际上,您的代码对meStill运行良好,即使在我添加$(this).sibles().removeClass('active')后,对我也不起作用;即使有多个活动LIs
$('li.active')。removeClass('active')
也会从所有LIs中删除活动类。选择器将匹配它们,它们都将应用removeClass。美元('li')也一样。单击()?我想我过去需要迭代器来添加触发器,是的。去尝试一下,清理一下你的旧JS!