.ajaxSuccess()
分类:Ajax > 全局Ajax事件处理
返回: jQuery
.ajaxSuccess( handler )
描述:附加一个函数,当一个Ajax请求成功地结束时执行它。这是一个Ajax事件。
加入于: 1.0
.ajaxSuccess( handler )- handler将被调用执行的函数。
每当一个Ajax请求成功地结束时,jQuery会触发ajaxSuccess
事件。任何已经用.ajaxSuccess()
方法注册到该事件的处理函数都会在这个时候执行。
要想在实践中观察该方法,只要设置一个基本的Ajax载入请求:
<div class="trigger">Trigger</div> <div class="result"></div> <div class="log"></div>
向任何元素附加该事件处理函数:
$(document).ajaxSuccess(function() { $( ".log" ).text( "Triggered ajaxSuccess handler." ); });
Now, make an Ajax request using any jQuery method:
$( ".trigger" ).on( "click", function() { $( ".result" ).load( "ajax/test.html" ); });
用户点击带有trigger
样式类的元素,当Ajax请求成功地结束的时候,将显示日志消息。
所有的ajaxSuccess
处理函数都会被调用执行,无论是哪个Ajax请求结束时。如果必须对请求作区分,请使用传递给处理函数的参数。每次执行一个ajaxSuccess
处理函数的时候,会向它传递该事件对象、XMLHttpRequest
对象、以及创建请求时所用到的setting对象。举个例子,你可以限制回调函数只处理与特定URL有关的事件:
$( document ).ajaxSuccess(function( event, xhr, settings ) { if ( settings.url == "ajax/test.html" ) { $( ".log" ).text( "Triggered ajaxSuccess handler. The Ajax response was: " + xhr.responseText ); } });
注意:你可以通过查看xhr.responseXML
或者xhr.responseText
来分别获得所返回的Ajax内容的xml内容和html内容。
其它说明
- 自从jQuery 1.9版,所有的用于jQuery全局Ajax事件的处理函数,包括用
.ajaxSuccess()
方法添加的处理函数,必须附加到document
上。 - 如果在调用
$.ajax()
方法或者$.ajaxSetup()
方法时,global
选项被设置为false,将不会引发.ajaxSuccess()
方法。
示例
当一个Ajax请求成功地结束时显示一条消息。
$( document ).ajaxSuccess(function( event, request, settings ) { $( "#msg" ).append( "<li>Successful Request!</li>" ); });