Javascript 当导航链接单击jQuery时切换活动类

Javascript 当导航链接单击jQuery时切换活动类,javascript,jquery,css,twitter-bootstrap,Javascript,Jquery,Css,Twitter Bootstrap,我正在尝试将jQuery添加到一个网站,这样当点击导航菜单中指向下一页的链接时,活动类就会切换到活动或当前页面。活动类最初也设置为主页。此外,它是一个使用引导的网站,所以我想知道是否有什么东西与我的jQuery冲突。看起来很简单,我的代码也能正常工作。它会从主页中删除活动类,并在下一个选项卡上短暂闪烁,但不会保持活动状态。以下是jQuery: $(".nav li").click(function() { $('li').removeClass('active'); $(this

我正在尝试将jQuery添加到一个网站,这样当点击导航菜单中指向下一页的链接时,活动类就会切换到活动或当前页面。活动类最初也设置为主页。此外,它是一个使用引导的网站,所以我想知道是否有什么东西与我的jQuery冲突。看起来很简单,我的代码也能正常工作。它会从主页中删除活动类,并在下一个选项卡上短暂闪烁,但不会保持活动状态。以下是jQuery:

$(".nav li").click(function() {
    $('li').removeClass('active');
    $(this).addClass("active");

});
有没有想过我可能做错了什么?提前谢谢


Andrew

我也遇到了类似的问题,并编写了以下脚本:

var _urlpath = $(location).attr('pathname').split('/').pop();

    $('#menu > li').each(function(){
        var _this = $(this);
        var _str = _this.find('a').attr('href');
        _str !== _urlpath ? _this.removeClass('active') : _this.addClass('active');
    });
它相当简单:过滤url路径名,将其存储在变量中,最重要的是,当加载新页面时,循环遍历所有li,并尝试匹配url哈希。我不知道确切的术语,在li>a中进行哈希


唉,也许有更好的方法可以做到这一点。

FYI,您不能在浏览器的不同选项卡之间使用javascript进行交互。另一个标签将是一个全新的页面,单独提供。因此,如果需要添加一些逻辑,请在打开新链接时传递一个查询参数,以便页面代码能够区分应该在加载时执行哪些操作。如上所述,一旦您离开页面,您在dom中操作的任何操作都将被还原。你应该使用一个指示器,有多种方法可以做到。多亏了你们两个。我并没有意识到,进入一个新的页面会返回,但这在我的代码的行为方式上是有意义的。再次感谢您的小javascript课程!是的,这很有帮助。正如我上面所说的,在我进入一个新页面时,并没有意识到会重置DOM,但现在它是有意义的。我确实考虑过如何使用每一个链接进行循环,但关于获取URL,我不确定我是否会想到这一点。感谢您花时间回复并提供示例代码。非常感谢@安德鲁,没问题!如果它解决了你的问题,请考虑接受答案!是的,当然。我注意到的一件事是,直接转到URL并没有在页面加载时将“active”类添加到主页,所以我必须弄清楚这一点。可能是因为我将.htaccess设置为直接转到index.html,而javascript正在寻找其他内容。除此之外,它工作得很好!