2011-11-25 30 views

Trả lời

16

Bạn nên sử dụng $.ajaxComplete();

$(document).ajaxComplete(function() { 
    alert("compete"); 
}); 

này sẽ được kích hoạt sau mỗi Ajax gọi bạn thực hiện trên trang

nếu không bạn sử dụng ajax() và thiết lập hoàn chỉnh các tài sản

$.ajax({ 
    url: "myurl", 
    complete: function(){ 
       alert("complete"); 
      } 
    //set all the other options as usual 
1

Nếu bạn muốn làm điều này cho một cuộc gọi cụ thể, sau đó chức năng complete có thể là những gì bạn cần. Nếu bạn muốn điều này là toàn cầu, cho tất cả các cuộc gọi ajax, thì câu trả lời của Nicola phải là những gì bạn cần.

Đây là jQuery documentation cho các cuộc gọi Ajax.

5

Bạn có thể sử dụng gọi lại cho bất kỳ phương pháp jQuery AJAX nào để trì hoãn việc thực hiện một chức năng khác cho đến khi yêu cầu hoàn tất.

Ví dụ:

$.post('/some/url', somedata, function() { 
     // put the code you want to execute on completion here 
    }); 

Đối với kịch bản phức tạp hơn, sử dụng phương pháp thực tế ajax mang đến cho bạn móc cho sự thành công, hoàn thành, báo lỗi và các sự kiện khác. Thông thường, bạn chỉ cần thành công và lỗi.

$.ajax('/some/url', { 
     data: somedata, 
     type: 'post', 
     success: function(result) { 
      // success code execution here 
     }, 
     error: function(xhr,status,error) { 
      // error code here 
     }, 
     complete: function(xhr,status) { 
      // completion code here 
     } 
    }); 
Các vấn đề liên quan