第一次加载我的页面并不能正常工作

First load of my page doesn't quite work

本文关键字:常工作 工作 并不能 加载 我的 第一次      更新时间:2023-09-26

我对jQuery和javascript有点陌生,昨天刚刚实现了一个新的代码来处理我的菜单周围的一些样式。当主页加载时,它不太正常工作,尽管它在做一些事情。当我导航到另一个页面并返回时,它工作得很好。是第一次装载让我伤心。谁能帮我弄清楚我的代码有什么问题吗?

下面是我的代码:

$(function(){ 
  var url = window.location.pathname,  
      urlRegExp = new RegExp(url.replace(/'/$/,'') + "$");
    $('.nav ul li a').each(function(){  
        if(urlRegExp.test(this.href.replace(/'/$/,''))){        
        $(this).attr('id', 'selected'); 
        } 
  });
    $(function() {
        if (url === "/index.html" || url === "/") {
        $('.nav').attr('id','homenav');
        }
  });
});

如果问题只是当//index.html是同一页时,为什么不在检查前使/成为/index.html…像这样:

$(function(){ 
    var url = window.location.pathname;
    if(url == '/')
    {
        url = '/index.html'; 
    }
    var urlRegExp = new RegExp(url.replace(/'/$/,'') + "$");
    $('.nav ul li a').each(function(){  
        if(urlRegExp.test(this.href.replace(/'/$/,''))){        
            $(this).attr('id', 'selected'); 
        } 
    });
    $(function() {
        if (url === "/index.html") {
            $('.nav').attr('id','homenav');
        }
    });
});

必须将javascript封装在现成的函数中:

$(document).ready(function(){
   $(function(){ 
  var url = window.location.pathname,  
      urlRegExp = new RegExp(url.replace(/'/$/,'') + "$");
    $('.nav ul li a').each(function(){  
        if(urlRegExp.test(this.href.replace(/'/$/,''))){        
        $(this).attr('id', 'selected'); 
        } 
  });
    $(function() {
        if (url === "/index.html" || url === "/") {
        $('.nav').attr('id','homenav');
        }
  });
});
});
我认为

就这些了