全局Ajax事件處理程序:.ajaxStart()

(PS:這篇文章是官網API文件的非專業翻譯+個人意見,並且重新排版過)

全局Ajax事件處理程序:.ajaxStart()

註冊一個處理程序,當第一個Ajax要求開始時該處理程序會被呼叫。這是一個Ajax事件(AjaxEvent)。

語法:

.ajaxStart( handler() )  //version added: 1.0
  • handler()

    Type: Function()

    要被呼叫的函式。

當Ajax要求要被送出去時,jQuery會檢查是否有其他未完成的Ajax要求。假如沒有任何在進行中的Ajax要求,jQuery會觸發ajaxStart事件。此時,每個用.ajaxStart()註冊的處理程序都會被執行。

為了實際觀察這個方法,我們建立了一個基本的Ajax載入要求:

<div class="trigger">Trigger</div>
<div class="result"></div>
<div class="log"></div>

將下面的事件處理器附加到文件上:

$( document ).ajaxStart(function() {
  $( ".log" ).text( "Triggered ajaxStart handler." );
 
});

現在,用jQuery方法來建立一個Ajax要求:

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

當使用者按下具有trigger類別的元素時,Ajax要求被傳送,log訊息就會出現。

從jQuery1.8開始,.ajaxStart()方法應該只被附加到document上。

其他注意事項:

  • 假如$.ajax()或是$.ajaxSetup()在呼叫時設定global選項為false,那.ajaxStart()方法將不會被觸發。

範例:

當Ajax要求傳送開始時(並且沒有其他Ajax要求在處理中),顯示一個訊息。

$( document ).ajaxStart(function() {
  $( "#loading" ).show();
});
 
 

  按個讚!~支持本站!~

FB推薦載入中