當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


JQuery .ajaxSend()用法及代碼示例


用法
.ajaxSend( handler ) => jQuery

說明:在發送 Ajax 請求之前附加要執行的函數。這是個阿賈克斯事件.

每當即將發送 Ajax 請求時,jQuery 都會觸發 ajaxSend 事件。此時會執行已使用 .ajaxSend() 方法注冊的所有處理程序。

要觀察此方法的實際效果,請設置一個基本的 Ajax 加載請求:

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

將事件處理程序附加到文檔:

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

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

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

當用戶單擊類trigger 的元素並且Ajax 請求即將開始時,將顯示日誌消息。

無論要發送什麽 Ajax 請求,都會調用所有 ajaxSend 處理程序。如果您必須區分請求,請使用傳遞給處理程序的參數。每次執行 ajaxSend 處理程序時,都會傳遞事件對象、jqXHR 對象(在 1.4 版中,XMLHttpRequest 對象)和用於創建 Ajax 請求的 settings object。例如,您可以將回調限製為僅處理處理特定 URL 的事件:

$( document ).ajaxSend(function( event, jqxhr, settings ) {
  if ( settings.url == "ajax/test.html" ) {
    $( ".log" ).text( "Triggered ajaxSend handler." );
  }
});

其他注意事項:

  • 從 jQuery 1.9 開始,jQuery global Ajax events 的所有處理程序,包括使用 .ajaxSend() 方法添加的處理程序,must 都附加到 document
  • 如果在 global 選項設置為 false 的情況下調用 $.ajax()$.ajaxSetup() ,則不會觸發 .ajaxSend() 方法。

例子:

在發送 Ajax 請求之前顯示一條消息。

$( document ).ajaxSend(function( event, request, settings ) {
  $( "#msg" ).append( "<li>Starting request at " + settings.url + "</li>" );
});

相關用法


注:本文由純淨天空篩選整理自jquery.com大神的英文原創作品 .ajaxSend()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。