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


JQuery .ajaxComplete()用法及代码示例


用法
.ajaxComplete( handler ) => jQuery

说明:注册一个在 Ajax 请求完成时调用的处理程序。这是个AjaxEvent.

每当 Ajax 请求完成时,jQuery 都会触发 ajaxComplete 事件。此时会执行已使用 .ajaxComplete() 方法注册的所有处理程序。

要观察此方法的实际效果,请设置一个基本的 Ajax 加载请求:

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

将事件处理程序附加到文档:

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

现在,使用任何 jQuery 方法发出 Ajax 请求:

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

当用户单击类trigger 的元素并且Ajax 请求完成时,将显示日志消息。

无论完成了什么 Ajax 请求,都会调用所有 ajaxComplete 处理程序。如果您必须区分请求,请使用传递给处理程序的参数。每次执行 ajaxComplete 处理程序时,都会传递事件对象、XMLHttpRequest 对象和用于创建请求的设置对象。例如,您可以将回调限制为仅处理处理特定 URL 的事件:

$( document ).ajaxComplete(function( event, xhr, settings ) {
  if ( settings.url === "ajax/test.html" ) {
    $( ".log" ).text( "Triggered ajaxComplete handler. The result is " +
      xhr.responseText );
  }
});

注意:您可以通过查看来获取返回的 Ajax 内容xhr.responseText.

其他注意事项:

  • 从 jQuery 1.9 开始,jQuery global Ajax events 的所有处理程序,包括使用 .ajaxComplete() 方法添加的处理程序,must 都附加到 document
  • 如果在 global 选项设置为 false 的情况下调用 $.ajax()$.ajaxSetup() ,则不会触发 .ajaxComplete() 方法。

例子:

Ajax 请求完成时显示一条消息。

$( document ).ajaxComplete(function( event, request, settings ) {
  $( "#msg" ).append( "<li>Request Complete.</li>" );
});

相关用法


注:本文由纯净天空筛选整理自jquery.com大神的英文原创作品 .ajaxComplete()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。