Tôi đang gặp sự cố khi cập nhật các thành phần chưa sẵn sàng sau yêu cầu ajax.Tài liệu jQuery sẵn sàng sau khi yêu cầu ajax
Nếu tôi chạy myFunction()
chức năng của tôi trên tải trang như vậy:
$(function() {
myFunction();
}
Tôi không có vấn đề gì cả. Nhưng nếu sau đó tôi sử dụng một cái gì đó như
$.ajax({
url: this.href,
dataType: "script",
complete: function(xhr, status) {
myFunction();
}
});
trả về $(".myElement").replaceWith("htmlHere")
. Các yếu tố chỉ đơn giản là không sẵn sàng khi sự kiện hoàn thành cháy. Nếu tôi thiết lập một sự chậm trễ trong đó nó hoạt động tốt trở lại.
Có sự kiện nào khác bị sa thải ngoài 'hoàn thành' khi DOM đã sẵn sàng không?
Cập nhật:
Dưới đây là đoạn code thực tế:
$(function() {
$("a.remote").live("click", function(e) {
$.ajax({
url: this.href,
dataType: "script",
success: function(xhr, status) {
myFunction();
}
});
e.preventDefault();
return false;
});
myFunction();
});
function myFunction() {
// Modify the dom in here
}
Các thiếu); chỉ là một lỗi đánh máy.
Tôi đã thử sử dụng thành công ngay bây giờ thay vì hoàn thành và dường như không có bất kỳ sự khác biệt nào.
những gì bạn làm trên sự kiện thành công của $ .ajax? Có một số chức năng mà bạn nên đề cập đến trong câu hỏi của bạn? –
Bạn muốn đặt * tất cả * mã của bạn bên trong một trình xử lý '$ (hàm() {...}) '; Bằng cách đó bạn không bao giờ có loại vấn đề đó ... Btw làm điều này cũng mang lại cho bạn một không gian tên, mà bạn cần. –
Ive đã cập nhật câu hỏi gốc với mã cập nhật. – Danny