2010-02-04 32 views
5

Điều gì có thể là lý do không thực thi tài liệu. Nó hoạt động tốt 2 lần, nhưng vào ngày 3 lần có gì xảy ra sau khi cập nhật html:

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

tôi có tất cả các cảnh báo thực hiện, PopupItem và html có giá trị đúng. Tôi đang sử dụng JQuery để thực thi cuộc gọi máy chủ bằng $ .post.

Ngoài ra, tôi có thể có trình xử lý lỗi để bắt nếu một số lỗi cú pháp xảy ra không?

Trả lời

12

Trong vòng AJAX trả về của bạn, bạn không cần một cuộc gọi $ (document) .ready(). DOM đã được tải. Một cái gì đó đơn giản như thế này nên làm các thủ thuật:

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

Tôi ghét ý tưởng xóa tài liệu.đã có, vì các tập lệnh có thể được trả về cả khi tải trang và ajax tôi cần triển khai logic kép, nhưng điều này hoạt động! – st78

2

document.ready chỉ được thực thi khi trang được tải ban đầu.

Để có trình xử lý lỗi, bạn có thể sử dụng $ .ajax để thực hiện các cuộc gọi ajax (http://api.jquery.com/jQuery.ajax/) của mình.

2

Bạn có nói rằng các html chuỗi truyền cho $(PopUpItem).html() chứa một khối <script> với một document.ready(function() { ... }); bên trong nó?

Nếu vậy lý do xử lý sự kiện ready không kích hoạt là tập lệnh không chạy chút nào. Xem this question có hành vi 'lần thứ ba'.

Không tải <script> thẻ vào đánh dấu. Nó không phải ở tất cả các trình duyệt đáng tin cậy, jQuery hay jQuery.

Các vấn đề liên quan