返回值:jQueryajaxStop(handler())

注册一个事件处理函数,这个函数会在所有的 Ajax 请求都完成时被调用。这是一个 Ajax 事件

当一个 Ajax 请求完成后, jQuery 会检测时候还有其它未完成的 Ajax 请求。如果没有还未完成的请求,jQuery 就会触发 ajaxStop 事件。任何先前通过 .ajaxStop() 方法注册的事件处理函数都会在此刻被执行。ajaxStop 事件同样会在最后一个未被执行的 Ajax 请求被取消时触发,取消 Ajax 请求方法可以通过在 beforeSend 函数中返回 false 来实现。

为了实际研究这个方法,我们构建一个简单的 Ajax load 请求:

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

可以把事件处理函数附加到任何元素上:

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

现在,我们可以用任意 jQuery 方法来发送一个 Ajax 请求,比如在 click 中发送一个请求:

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

当用户点击含有 trigger 的元素时,在 Ajax 请求结束后,就会显示日志信息。

由于 .ajaxStop() 是作为一个 jQuery 对象实例的方法来实现的,所以我们在回调函数中可以通过 this 关键字来指向原先所选中的元素。

示例:

当所有的 Ajax 请求结束后,隐藏加载提示信息。

jQuery 代码:
$("#loading").ajaxStop(function(){
      $(this).hide();
});