我知道这个问题可以在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();
}
});
答案 0 :(得分:0)
可能this.href
没有给你绝对的网址。我不确定。但是如果使用indexOf
会更好,即使href中有相对网址也会有效。
$('.nav-menu li a').filter(function(){
return location.href.replace(/#.*/, "").indexOf($(this).attr('href')) != -1;
}).addClass("active");