0

我对 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');
        }
  });
});
4

2 回答 2

1

如果问题只是当它与为什么不在检查之前制作/相同的页面时..就像这样:/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');
        }
    });
});
于 2013-05-07T16:09:36.797 回答
0

您必须将 javascript 包装在 ready 函数中:

$(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');
        }
  });
});
});

我认为。

这就是所有人

于 2013-05-07T15:56:31.377 回答