ajaxStop 事件


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

描述: 注册一个处理程序,当所有 Ajax 请求完成时调用。这是一个 Ajax 事件.

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

每当 Ajax 请求完成时,jQuery 都会检查是否有任何其他未完成的 Ajax 请求。如果没有任何剩余,jQuery 会触发 ajaxStop 事件。此时会执行所有已注册的 ajaxStop 处理程序。如果最后一个未完成的 Ajax 请求在 beforeSend 回调函数中返回 false 而被取消,也会触发 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();
} );