jquery ajax學習之-ajaxComplete

 

.ajaxComplete( handler(event, XMLHttpRequest, ajaxOptions) )返回: jQuery

描述: 當Ajax請求完成後註冊一個回調函數。這是一個 AjaxEventjavascript

  • 添加的版本: 1.0.ajaxComplete( handler(event, XMLHttpRequest, ajaxOptions) )

    • handler(event, XMLHttpRequest, ajaxOptions)
      類型:  Function()
      被調用的函數。

每當一個Ajax請求完成,jQuery就會觸發ajaxComplete事件,在這個時間點全部處理函數會使用.ajaxComplete()方法註冊並執行。html

觀察活動中的這種方法,創建一個基本的Ajax加載請求:java

1
2
3
 
        
<div class="trigger">Trigger</div>
<div class="result"></div>
<div class="log"></div>

在document上綁定事件處理器:jquery

1
2
3
 
        
$(document).ajaxComplete(function() {
$( ".log" ).text( "Triggered ajaxComplete handler." );
});

如今,咱們可使用任何的jQuery方法構建一個Ajax請求:ajax

1
2
3
 
        
$( ".trigger" ).click(function() {
$( ".result" ).load( "ajax/test.html" );
});

當咱們點擊class爲 trigger 的元素而且Ajax請求完成,這個信息就會顯示。api

可是從 jQuery 1.8 開始, .ajaxComplete() 方法只能綁定到 document元素.app

注,這段在官網的原文中已經被刪除: 由於.ajaxComplete() 是做爲一個jQuery對象實例方法去執行的,回調函數中,咱們能夠用this關鍵字做爲指定的元素。函數

不管哪個Ajax請求被完成,全部ajaxComplete處理函數都將被執行。若是咱們必須區分不一樣的請求,咱們可使參數傳遞給這個處理函數。 他是經過事件對象, XMLHttpRequest 對象和設置對象中使用的請求,作每一次ajaxComplete 處理器執行的。舉個例子,咱們能限制咱們的回調到只處理事件處理某一特定的URL:this

1
2
3
4
5
6
 
        
$(document).ajaxComplete(function(event, xhr, settings) {
if ( settings.url === "ajax/test.html" ) {
$( ".log" ).text( "Triggered ajaxComplete handler. The result is " +
xhr.responseHTML );
}
});

注意: 你能夠獲得返回的AJAX內容 察看XML和HTML的xhr.responseXML 或 xhr.responseHTML 之間的分別。url

其餘注意事項:

  • 若是global選項設置爲false,調用$.ajax() 或 $.ajaxSetup(),.ajaxComplete()方法將不會被觸發。

例子:

當Ajax請求完成後顯示一個信息。

1
2
3
 
        
$(document).ajaxComplete(function(event,request, settings) {
$( "#msg" ).append( "<li>Request Complete.</li>" );
});
相關文章
相關標籤/搜索