2010-01-09 45 views
7

Có thể tạo và đính kèm một cuộc gọi lại bất cứ khi nào yêu cầu ajax hoàn thành bất kể cuộc gọi được thực hiện bằng cách sử dụng $.ajax, $.post, load hoặc bất kỳ chức năng nào khác không?Gọi lại toàn cầu cho các cuộc gọi Ajax trong JQuery

EDIT:

Các giải pháp được đưa ra bởi Nakul (sử dụng ajaxSuccess kiện toàn cầu) là gần như hoàn hảo. Tuy nhiên, tôi gặp sự cố khi sử dụng chức năng này với chức năng load. Sự kiện ajaxSuccess được nâng lên sau khi yêu cầu đã hoàn thành nhưng trước bất kỳ thao tác DOM nào. Tôi muốn thực thi một số mã sau khi DOM đã được sửa đổi. Giải pháp tạm thời của tôi là sử dụng setTimeout và chờ một vài phần nghìn giây nhưng tôi không nghĩ nó đủ đáng tin cậy đối với tôi.

Vì vậy, một câu hỏi khác là: làm thế nào bạn có thể thực thi mã sau khi DOM đã bị thao tác bởi hàm load?

EDIT 2:

tôi đã quản lý để giải quyết vấn đề thứ hai bằng cách sử dụng ajaxComplete sự kiện thay vì ajaxSuccess.

+0

Bạn có thể gửi giải pháp của bạn? – redolent

Trả lời

1

Sử dụng ajaxSuccess và có lẽ bạn muốn chạy mã khi bạn bấm vào một liên kết?

HTML:

<a href="javascript:void(0);" class="runCode">Run code</a> 

JS:

$(function() { // same as dom loaded 
    $('a.runCode').click(function() { 
     alert('whatever you want to do here'); 
    }); 
}); 
Các vấn đề liên quan