ajaxSuccess 事件


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

描述: 附加一个函数,该函数将在每次 Ajax 请求成功完成时执行。这是一个Ajax 事件

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

每当 Ajax 请求成功完成时,jQuery 都会触发 ajaxSuccess 事件。此时将执行所有已注册的 ajaxSuccess 处理程序。

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

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

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

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

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

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

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

所有 ajaxSuccess 处理程序都会被调用,而不管哪个 Ajax 请求已完成。如果您必须区分请求,可以使用传递给处理程序的参数。每次执行 ajaxSuccess 处理程序时,都会将事件对象、XMLHttpRequest 对象以及用于创建请求的设置对象传递给它。例如,您可以将回调限制为仅处理与特定 URL 相关的事件。

1
2
3
4
5
6
$( document ).on( "ajaxSuccess", function( event, xhr, settings ) {
if ( settings.url == "ajax/test.html" ) {
$( ".log" ).text( "Triggered ajaxSuccess handler. The Ajax response was: " +
xhr.responseText );
}
} );

注意:您可以分别通过查看 xhr.responseXMLxhr.responseText 来获取返回的 Ajax 内容(分别用于 xml 和 html)。

附加说明

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

示例

当 Ajax 请求成功完成时显示一条消息。

1
2
3
$( document ).on( "ajaxSuccess", function( event, request, settings ) {
$( "#msg" ).append( "<li>Successful Request!</li>" );
} );