javascript - 活动状态不适用于第一次访问
问题描述
我有一个带有几个链接的菜单。我只想突出显示我当前的链接,所以我将此代码用于活动状态。它工作正常。
$(function () {
$('.nav li a').each(function () {
if ($(this).prop('href') == window.location.href) {
$(this).addClass('home-active-link');
}
});
});
问题 当我把它放在本地主机上并测试时。它不适用于第一次访问。请看一下这个截图。
但是当我浏览页面并回到家时,它工作正常。有什么建议可以解决这个问题吗?
解决方案
您可以调试下面给出的代码
jQuery(document).ready(function($){
setTimeout(function(){
$('.nav li a').each(function () {
console.log($(this).prop('href')); // alert($(this).prop('href'))
console.log(window.location.href); // alert(window.location.href);
if ($(this).prop('href') === window.location.href) {
$(this).addClass('home-active-link');
}
});
},30);
});
推荐阅读
- elasticsearch - 使用两个过滤器,字段的值和时间戳在 kibana 中的字符串字段上创建 URL
- regex - 如何匹配以 2 位数字结尾的 10 字符字符串?
- jquery - 使用 jquery 从复选框形成 API 调用请求
- javascript - 对象的属性未定义,即使对象上的 console.log 显示属性值
- javascript - 如何在某些部分隐藏/显示固定元素?
- ruby-on-rails - 葡萄如何动态设置参数值
- xpages - 将多个 NotesRichText 字段附加到文件下载控件
- java - 如何在eclipse`中做项目结构“src/main/java”?
- java - Vaadin WebApplication - 可以离线模式吗?
- arrays - 将十六进制值的字符串转换为 []byte 表示