ajaxStop 事件


.on( "ajaxStop", handler )返回: jQuery

描述: 注册一个处理函数,该函数将在所有 Ajax 请求完成时调用。这是一个 Ajax 事件

此页面描述 ajaxStop 事件。对于已弃用的 .ajaxStop() 方法,请参阅 .ajaxStop()

每当一个 Ajax 请求完成时,jQuery 都会检查是否存在其他未完成的 Ajax 请求。如果没有,jQuery 将触发 ajaxStop 事件。此时会执行所有已注册的 ajaxStop 处理函数。如果通过在 beforeSend 回调函数中返回 false 来取消最后一个未完成的 Ajax 请求,也会触发 ajaxStop 事件。

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

1
2
3
<div class="trigger">Trigger</div>
<div class="result"></div>
<div class="log"></div>

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

1
2
3
$( document ).on( "ajaxStop", function() {
$( ".log" ).text( "Triggered ajaxStop handler." );
} );

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

1
2
3
$( ".trigger" ).on( "click", function() {
$( ".result" ).load( "ajax/test.html" );
} );

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

附加说明

  • 从 jQuery 1.9 开始,所有 jQuery 全局 Ajax 事件的处理函数,包括通过 .on( "ajaxStop", ... ) 添加的处理函数,必须绑定到 document
  • 如果调用 $.ajax()$.ajaxSetup()global 选项设置为 false,则 ajaxStop 事件将不会触发。

示例

在所有 Ajax 请求停止后隐藏加载消息。

1
2
3
$( document ).on( "ajaxStop", function() {
$( "#loading" ).hide();
} );