当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。