将活动类添加到当前活动链接

时间:2015-05-27 14:23:52

标签: javascript jquery html css

我知道这个问题可以在SO上找到,但我不得不问这个问题 我为我的导航制作了一个插件,其中包含多个功能和事件 一种方法是将活动类添加到当前链接 该方法之前工作正常,但我做了一些更改,现在它已不再有效。

我的方法是:

$('.nav-menu li a').filter(function(){
    return this.href == location.href.replace(/#.*/, "");
}).addClass("active");

这是一个非常简单的方法,但我需要再写一次 该插件有几个函数和一个事件处理程序。

有一个选择器处理点击事件

 $(document).on('click', '.nav-menu li a', function(e) {
    if ($(this).attr('href') !== '#') {
        var link = $(this).attr('href');
          $('#preloader').removeClass('fadeOut').addClass('fadeIn').fadeIn('slow');
            setTimeout(function() {
              window.location = link;
            }, 1500)
    } else if ($(this).attr('href') == '#') {
        e.preventDefault();
     }
 });

1 个答案:

答案 0 :(得分:0)

可能this.href没有给你绝对的网址。我不确定。但是如果使用indexOf会更好,即使href中有相对网址也会有效。

$('.nav-menu li a').filter(function(){
    return location.href.replace(/#.*/, "").indexOf($(this).attr('href')) != -1;
}).addClass("active");