ajaxStop 事件


.on( "ajaxStop", handler )傳回:jQuery

說明:註冊一個處理常式,當所有 Ajax 要求完成時呼叫。這是一個 Ajax 事件

此頁面說明 ajaxStop 事件。如需已棄用的 .ajaxStop() 方法,請參閱 .ajaxStop()

每當 Ajax 要求完成時,jQuery 會檢查是否有任何其他未完成的 Ajax 要求。如果沒有,jQuery 會觸發 ajaxStop 事件。此時會執行任何已註冊的 ajaxStop 處理常式。如果最後一個未完成的 Ajax 要求在 beforeSend 回呼函式中傳回 false 而被取消,也會觸發 ajaxStop 事件。

若要觀察此方法的實際運作,請設定一個基本的 Ajax 載入要求

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

將事件處理常式附加到文件

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

現在,使用任何 jQuery 方法發出 Ajax 要求

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

當使用者按一下 class 為 trigger 的元素,且 Ajax 要求完成時,就會顯示記錄訊息。

其他注意事項

  • 從 jQuery 1.9 開始,所有 jQuery 全域 Ajax 事件 的處理常式,包括使用 .on( "ajaxStop", ... ) 新增的處理常式,都必須附加到 document
  • 如果 $.ajax()$.ajaxSetup() 在呼叫時將 global 選項設定為 false,則 ajaxStop 事件不會觸發。

範例

在所有 Ajax 要求都停止後隱藏載入訊息。

1
2
3
$( document ).on( "ajaxStop", function() {
$( "#loading" ).hide();
} );