window.location.pathname不再用于添加/删除活动状态

时间:2016-12-22 16:11:12

标签: jquery

我使用一个简单的脚本根据用户的当前位置在页眉和页脚导航链接上应用或删除活动状态,但今天我发现它已不再有效。控制台不会产生任何错误,我没有改变任何内容。

var current;
current = window.location.pathname;

$('ul#menu li#home-nav').addClass("active"); 

if(current.indexOf("index.php") >= 0){
    $('ul#menu li, ul#subnav li').removeClass("active"); 
    $('ul#menu li#home-nav, ul#subnav li#home-subnav').addClass("active"); 
}

if(current.indexOf("services.php") >= 0){
    $('ul#menu li, ul#subnav li').removeClass("active"); 
    $('ul#menu li#services-nav, ul#subnav li#services-subnav').addClass("active"); 
}

等。是否有更好/更有效的方法来实现这一目标?

1 个答案:

答案 0 :(得分:1)

尝试这个简单的解决方案。

var url = window.location.pathname;
var urlFilename = url.substring(url.lastIndexOf('/')+1);

if(urlFilename !== ''){
    $('ul#menu li, ul#subnav li').removeClass('active');
    $myElm = $('ul#subnav li a[href="' + urlFilename + '"]');
    if($myElm.length){
        $myElm.parent().addClass('active');
        $myElm.parent().parent().parent().addClass('active');
    }
}

如果您共享HTML也会非常有用。

感谢。