2013-05-15 5 views
0

첫 번째 문은

$(document).on("DOMContentLoaded", function (event) { 
    $(document.body).on('beforeinsert', onBeforeInsert); 
    $(document.body).on('afterinsert', onAfterInsert); 
    $(document.body).on('wait', onWait); 
    $(window).on('load', onLoad); 
}); 

하지만 내가 불을 지르고를 사용하는 경우는 "$가 정의되지 않은"라고 나에게 이야기한다. 파일의 다른 곳에서는 예상대로 모든 것이 작동합니다. 사실 나는

document.addEventListener("DOMContentLoaded", function (event) { 

모든 또한 잘 작동

에 첫 번째 줄을 변경합니다. 크로스 브라우저 호환성을 얻을 수 있기를 원하기 때문에이 작업을 수행하고 싶지 않습니다.

+5

는'

1

JQuery를 사용하기 전에 JQuery JS 파일을 포함하지 않은 것으로 들립니다. 브라우저는 페이지를 맨 아래로 렌더링하므로 Jquery JS 파일에 대한 참조를 페이지 상단에 추가하십시오.

+1

jQuery 라이브러리에 대한 참조는 jQuery를 필요로하는 스크립트 바로 앞 (페이지 상단 일 필요는 없다) 일 필요는 없다. –

+0

또는 하단에 추가하지만 나중에 필요한 것이 있는지 확인하십시오. 맨 아래에 있다면 DOMContentLoaded 이벤트 리스너가 필요하지 않습니다. –

0

jquery가로드되기 전에 js가 실행 중입니다. 시도 :

1 - 페이지 헤더에 참조 JQuery와,

이이 스크립트를 정의하기 전에 - 사용 $ ([...]) :

$(function() { 
    $(document).on("DOMContentLoaded", function (event) { 
     $(document.body).on('beforeinsert', onBeforeInsert); 
     $(document.body).on('afterinsert', onAfterInsert); 
     $(document.body).on('wait', onWait); 
     $(window).on('load', onLoad); 
    }); 
});