.ajaxSuccess()

.ajaxSuccess( handler )返回类型:jQuery

描述:附加一个函数,每当有一个Ajax请求成功完成时执行它。这是一个Ajax事件

每当一个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).ajaxSuccess(function() {
$( ".log" ).text( "Triggered ajaxSuccess handler." );
});

现在,利用任何jQuery方法制作一个Ajax请求:

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

用户点击带有trigger类的元素,当Ajax请求成功完成时,会出现日志消息。

无论哪个Ajax请求完成时,都会调用所有ajaxSuccess处理函数。如果你必须区分这些请求,你可以使用传递给处理函数的参数。每次执行一个ajaxSucces,都会传递事件对象、XMLHttpRequest对象以及用来创建请求的对象设置。例如,你可以限制回调函数只处理与特定URL有关的事件:

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

Note: 你可以通过查看xhr.responseXMLxhr.responseText,分别获得返回的Ajax内容的XML格式和HTML格式。

补充说明:

  • 自从jQuery 1.9以来,所有的针对jQuery全局Ajax事件的处理函数,包括用.ajaxSuccess()方法添加的那些处理函数,必须附加到document
  • 如果调用$.ajax()$.ajaxSetup(),其global选择被设置为false,则不会引发.ajaxSuccess()方法。

示例:

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

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