将活动类添加到基于URL的导航菜单仅在发出警报时有效

Add Active Class to a Navigation Menu Based on URL Works only when alert is given

本文关键字:有效 菜单 导航 添加 活动 URL      更新时间:2023-09-26

我正在开发一个包含大约8/10个网页的网站。我已经使用javascript实现了一个通用的页眉和页脚,它运行良好。下一步是向导航菜单添加一个活动类,我可以通过javascript或jquery读取该类。我偶然发现了一篇既有jquery又有javascript方法的文章。如何在基于URL 的导航菜单中添加活动类

jquery方法似乎只有在我添加警报时才对我有效声明。

 $(function() {
     var pgurl = window.location.href.substr(window.location.href
.lastIndexOf("/")+1);
     alert(pgurl); //Works fine if this statement is included
     $("#nav ul li a").each(function(){
          if($(this).attr("href") == pgurl || $(this).attr("href") == '' )
          $(this).addClass("active");
     })
});

我确实引用了更多的文章,看起来他们中的大多数或多或少都使用了相同的方法。有什么建议吗?

使用一些timeout,可能是您的视图还没有准备好,请尝试以下代码:-

$(function() {
    setTimeout(function(){
        var pgurl = window.location.href.substr(window.location.href.lastIndexOf("/")+1);
        $("#nav ul li a").each(function(){
            if($(this).attr("href") == pgurl || $(this).attr("href") == '' )
            $(this).addClass("active");
        });
    }, 5000);
});

它可能会对你有所帮助。