removeClass if href!= hashtag

时间:2013-10-17 09:36:19

标签: jquery url scroll removeclass hashtag

我有一个代码,当我向下滚动页面时,我的网址就像www.mypage.com#div1www.mypage.com#div2一样。为了在我向下滚动页面时突出显示我的菜单项,我编写了这段代码,该代码工作正常:

$(window).scroll(function() {
    $(".menu a").each(function() {
        if (this.href == window.location.href) {
            $(this).addClass("active");
        } else {
            //Something here?
        }
    });
});

但问题是我想再次移除“活动”类。我尝试将各种各样的东西放在“其他”部分,但似乎没有任何效果。

非常感谢任何帮助!

谢谢, 蒂娜

3 个答案:

答案 0 :(得分:1)

使用attribute-equals-selector/

尝试此操作
  $(window).scroll(function () {
      $('.menu a.active').removeClass('active');
      $('.menu a[href="' + window.location.hash + '"]').addClass('active');
  });

答案 1 :(得分:0)

这应该有效:
首先删除活动类,然后将其分配给适当的div

 $(window).scroll(function() {
           $(".menu a").each(function() {
               $(".active").removeClass("active");  
               if (this.href == window.location.href) {

                   $(this).addClass("active");
               } 
           });
    });

答案 2 :(得分:0)

我建议你改变你的if条件,看看它是否解决了:

if (this.href == window.location.hash) {
    $(this).addClass("active");
} else {
    $('.active').removeClass("active");
}