ajaxStart 事件


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

說明: 註冊一個處理常式,在第一個 Ajax 要求開始時呼叫。這是一個 Ajax 事件

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

每當 Ajax 請求即將發送時,jQuery 會檢查是否有任何其他未完成的 Ajax 請求。如果沒有任何請求正在進行中,jQuery 會觸發 ajaxStart 事件。此時,所有已使用 .on( "ajaxStart", ... ) 註冊的處理函式都會執行。

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

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

將事件處理函式附加到任何元素

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

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

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

當使用者按一下具有 trigger 類別的元素,且 Ajax 請求已發送時,會顯示記錄訊息。

其他注意事項

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

範例

在 Ajax 請求開始時顯示載入訊息(且沒有任何請求正在進行中)。

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