2010-07-19 7 views
0

jQuery를 개인 사이트의 헤드에 포함 시켰습니다. jQuery를 사용하는 외부 js 파일도 포함시켰다. 내가 그것을했을 때, 내 오류 콘솔이 "오류가 정의되지 않은 $"나에게주는 것을 알았어했다Jquery가 타이밍 문제를 정의하지 않았습니다.

$(".nav-item").hover(function(){ 
    $(this).addClass("selected"); 
}, 
function(){ 
    $(this).removeClass("selected"); 
}); 

:

<script language="javascript" src="../js/jquery-1.4.2.min.js"></script> 
<script language="javascript" src="../js/global.js"></script> 

global.js는 단지 다음이 포함되어 있습니다. 내 외부 js 파일을 페이지 맨 아래로 이동하면 모든 것이 정상적으로 작동합니다. 분명히 타이밍상의 문제를 다루는 적절한 방법은 무엇입니까? 사전에 어떤 도움

감사

편집 : 그것은 내가 지난 밤에 정의되지 않은 오류가 한 동안, 나는 그것을 제거하는 짓을하고 참조하거나 더 이상 재현 할 수없는 생각해야합니다 것 같다. document.ready에 이벤트 바인딩을 시도했는데 이것이 내 문제를 해결하는 것 같습니다.

+1

jQuery가 * 나중에 * 페이지에 포함됩니까? 첫 번째 링크가 잘못되었을 수 있습니다. 그들은 순서대로 적재해야하며, 많은 것들이 동일하다는 것에 달려 있습니다. 참고로,'language = "javascript"'는 더 이상 사용되지 않으므로'type = "text/javascript"를 사용해야합니다. –

+1

그건 이해가 안되는데, 순서가 맞다면 (커스텀 스크립트 after jQuery) 아무런 문제가 없어야한다. – Marko

+0

잘못된 정보에 대해 사과드립니다. 나는 더 이상 오류를받지 않았고 이벤트 처리기를 document.ready에 바인딩하여 내 문제를 해결했습니다. – TeeOh

답변

1

준비가 완료되면 global.js의 이벤트 처리기를 바인딩 했습니까?

+0

완전히 다른 문제입니다. 문제는 정의되지 않았습니다. $ (document) .ready()는 여전히 "$ is not defined"를 던질 것입니다. – Marko

+0

나는 그것을 깨닫는다. 그리고 그것은 나에게 의미가 없다. 그러나 정보의 부족 때문에 그가 더 많이 게시 할 때까지 내가 조언 할 것 인 것이다. –

+0

내 문제가 해결되었습니다 (편집 참조). 도와 주셔서 감사합니다! – TeeOh