2011-11-22 4 views
1

저는 $(function(){});을 입력하는 데 익숙합니다. 이벤트를 연결하고 document ready 이벤트에서 다른 작업을 수행하는 구문입니다. 그러나 IE8이 포함 된 일부 js 파일에서 함수를 호출 할 때 문제가 있음을 발견했습니다. 페이지에 디자이너가 작성한 코드가 없다면 코드를 해독 할 수 없었을 것입니다 (그는 몇 가지 슬라이드 쇼를 넣었습니다 : D). 슬라이드 쇼용 코드는 이전 $(document).ready(function(){}); 구문을 사용하고 있었고 작동 중이었습니다. 내 코드를 제거하고 슬라이드 쇼 초기화 코드와 함께 넣어 일이 시작되었습니다.Wiring document.ready 이벤트 : IE가 다르게 동작합니다.

이 이상한 동작을 이해할 수는 없지만이 버그로 다시 물리지 않도록하고 싶습니다. 포함 된 파일이 ready 이벤트 발생 후 다운로드되는 것입니까?

편집 : 포함 된 모든 파일이 다운로드를 완료

<script src="jquery.js" type="text/javascript"></script> 
<script src="custom.js" type="text/javascript"></script> 

$(function(){ 
    myCustomFunction(); ///THIS IS CAUSING EXCEPTION IN IE 8 
}); 


$(document).ready(function(){ 
    myCustomFunction(); ///THIS IS WORKS IN IE 8 
}); 

답변

1

ready 이벤트에만 화재 이후, 즉 그것을 위해 무엇이다.

는 또한 이전에 유사한 문제로 실행하지만, 제대로 닫히지되지 않는 태그 내 스크립트에 기인 여기 봐 가지고, 시도 How does $(document).ready() work in IE 8?

+0

예. 그렇습니다. 링크 주셔서 감사합니다. – TheVillageIdiot

+0

링크 된 질문에 명시된 내용이 아닙니다. jQuery가 포함되어 있고'$ (function() {}) '이 입력됩니다. – TheVillageIdiot

0

이슈가 JQuery와는 아직로드되지 않았기 때문에 발생할 수를 테스트에 $ (문서) .ready 코드 앞에 다음 코드를 실행 : 그것은 IE8 인 경우

if (jQuery) alert('jquery loaded') 
else alert('jquery not loaded') 

우리는 유사한 브라우저 호환성 문제가 있고, 기억할 수 없다. 스크립트 태그 'type'속성으로 인해 발생했습니다.

'text/javascript'(the W3C recommendation), 'application/javascript'및 일부 유형 속성이없는 라벨이 있습니다. JQuery는 'text/javascript'라는 헤더의 맨 위에 있었지만 여전히 마지막에로드되었습니다.

모든 스크립트 태그에 동일한 ContentType을 넣으면 쉽게 해결할 수있었습니다.

+0

jQuery가로드되었습니다. '$ (function() {}) '에 들어가지만이 함수 안에있는 다른 포함 된 파일의 코드는 호출하지 않습니다. – TheVillageIdiot

관련 문제