ajaxStart 事件


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

描述: 注册一个处理程序,当第一个 Ajax 请求开始时调用。这是一个 Ajax 事件

本页描述了 ajaxStart 事件。对于已废弃的 .ajaxStart() 方法,请参阅 .ajaxStart()

每当 Ajax 请求即将发送时,jQuery 会检查是否有其他未完成的 Ajax 请求。如果没有正在进行的请求,jQuery 会触发 ajaxStart 事件。所有已使用 .on( "ajaxStart", ... ) 注册的处理程序都会在此刻执行。

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

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

将事件处理程序附加到任何元素

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

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

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

当用户点击带有 trigger 类的元素并发送 Ajax 请求时,将显示日志消息。

附加说明

  • 自 jQuery 1.9 起,所有 jQuery 全局 Ajax 事件的处理程序,包括使用 .on( "ajaxStart", ... ) 添加的处理程序,必须附加到 document 上。
  • 如果调用 $.ajax()$.ajaxSetup() 时将 global 选项设置为 false,则 ajaxStart 事件将不会触发。

示例

每当 Ajax 请求开始时(且没有其他请求正在进行中),显示加载消息。

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