ajaxStop()

在AJAX 请求完成时执行一个处理函数。这是一个 Ajax Event。

.ajaxStop(handler)
  • handler 类型:Function() 。被调用的函数。

每当一个Ajax请求完成,jQuery检查是否有任何其他响应过程中的Ajax请求(注:未完成的请求)。如果都执行完成,jQuery就会触发 ajaxStop 事件,在这个时间点所有处理函数都会使用 .ajaxStop() 方法注册并执行。如果一个未处理完成的Ajax请求用 beforeSend 回调函数返回 false 取消, ajaxStop 事件也被触发

观察这种方法,建立一个基本的Ajax加载请求:

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

在document上绑定事件处理器:

$( ".log" ).ajaxStop(function() {
  $(this).text( "Triggered ajaxStop handler." );
});

现在,我们可以使用任何的jQuery方法构建一个Ajax请求:

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

当我们点击class为 trigger 的元素并且Ajax请求完成,这个信息就会显示。

其他注意事项:

  • 在jQuery1.9中,jQuery全局AJAX事件的所有处理程序,包括哪些 .ajaxStop() 添加的方法, 必须 附加到 document 上。
  • 如果 $.ajax() $.ajaxSetup() 调用时, global 选项设置为 false .ajaxStop() 将不会触发。

例子

在Ajax请求停止后隐藏加载信息:

$(document).ajaxStop(function() {
      $( "#loading" ).hide();
});