2013-05-07 3 views
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'); 
     } 
    }); 
}); 
+0

첫 번째로드? 우리가 증상을 모를 때 문제를 파악하는 것은 대단히 어렵습니다. – Bucket

+0

이것은 까다로운 것입니다 ... 우리는 무슨 일이 일어나고 있는지, 그리고 무엇이 잘못 될지 알 수 없습니다. "console.log (Object here)"를 사용하여 대부분의 최신 웹 브라우저에서 개발 콘솔의 다양한 데이터를 출력 할 수 있습니다 (크롬처럼 : 페이지에서 오른쪽 클릭 -> 요소 검사 -> 콘솔) –

+0

코드가 파일 경로를 감지합니다. 앵커 태그의 href 속성과 일치하면 특정 앵커가 포함 된 목록 항목에 id를 추가합니다. 기본적으로 텍스트를 검정색에서 파란색으로 변경합니다. 처음로드 할 때 모든 목록 항목이 파란색으로 변경됩니다 . 내가 돌아서 돌아와서 함수가 정상적으로 작동하는 것처럼 보입니다. –

답변

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'); 
     } 
    }); 
}); 
+0

Smart Idea. 너무 자세하게 다루기보다는 솔루션에 대해 창의적으로 생각하는 데 노력해야합니다 .Danny, 감사합니다. –

+0

문제가 없습니다. Aaron, 문제 해결을위한 솔루션이었습니다. –

0

당신은 theready 함수 내에서 자바 스크립트를 포장해야합니다 :

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

내가 생각

여기 내 코드입니다. 문제가있는 경우 모든 사람에게

+0

$ (document) .ready (function() {}은 jQuery에서 $ (function() {}과 같습니다.) 그렇진 않지 만 시도해 줘서 고마워요! –

관련 문제