2010-02-04 4 views
5

반환 된 부분 페이지 내에서 document.ready를 실행하지 않는 이유는 무엇입니까? 그것은 좋은 2 번 작동하지만, 3 시간 아무것도에 HTML의 업데이트 후 발생 : 나는 모든 경고를 실행 한

alert(html); 
alert($(PopUpItem)); 
$(PopUpItem).html(html); 
alert('in set popup html completed'); 

을 POPUPITEM 및 HTML은 올바른 값이 있습니다. JQuery를 사용하여 $ .post에 의해 서버 호출을 실행하고 있습니다.

또한 오류 처리기에서 일부 구문 오류가 발생했는지 파악할 수 있습니까?

답변

12

반환 된 AJAX에서 $ (document) .ready() 호출이 필요하지 않습니다. DOM이 이미로드되었습니다. 이런 간단한 것은 트릭을해야합니다 :

<script type="text/javascript"> 
// Do something here. 
</script> 
+4

document.ready를 제거하는 것이 싫지만 페이지로드 및 아약스 모두에서 반환 될 수있는 스크립트의 경우 이중 논리를 구현해야하므로이 방법이 효과적입니다. – st78

2

document.ready는 페이지가 원래로드되었을 때만 실행됩니다.

오류 처리기를 사용하려면 추가 $ .ajax를 사용하여 ajax 호출을 수행하십시오 (http://api.jquery.com/jQuery.ajax/).

2

당신은 $(PopUpItem).html()에 전달 된 html 문자열이 내부 document.ready(function() { ... });<script> 블록을 포함 건가요?

ready 이벤트 처리기가 실행되지 않는 이유는 스크립트가 전혀 실행되지 않는다는 것입니다. 동일한 '세 번째'동작을 갖는 this question을 참조하십시오.

태그에 <script> 태그를로드하지 마십시오. 신뢰성있는 크로스 브라우저, jQuery 또는 jQuery가 없습니다.

관련 문제