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

Ready 関数内に 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');
        }
  });
});
});

おもう。

それはすべての人々です

于 2013-05-07T15:56:31.377 に答える