jquery ajax学习之-ajaxComplete

 

.ajaxComplete( handler(event, XMLHttpRequest, ajaxOptions) )返回: jQuery

描述: 当Ajax请求完成后注册一个回调函数。这是一个 AjaxEventjavascript

  • 添加的版本: 1.0.ajaxComplete( handler(event, XMLHttpRequest, ajaxOptions) )

    • handler(event, XMLHttpRequest, ajaxOptions)
      类型:  Function()
      被调用的函数。

每当一个Ajax请求完成,jQuery就会触发ajaxComplete事件,在这个时间点全部处理函数会使用.ajaxComplete()方法注册并执行。html

观察活动中的这种方法,创建一个基本的Ajax加载请求:java

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

在document上绑定事件处理器:jquery

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

如今,咱们可使用任何的jQuery方法构建一个Ajax请求:ajax

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

当咱们点击class为 trigger 的元素而且Ajax请求完成,这个信息就会显示。api

可是从 jQuery 1.8 开始, .ajaxComplete() 方法只能绑定到 document元素.app

注,这段在官网的原文中已经被删除: 由于.ajaxComplete() 是做为一个jQuery对象实例方法去执行的,回调函数中,咱们能够用this关键字做为指定的元素。函数

不管哪个Ajax请求被完成,全部ajaxComplete处理函数都将被执行。若是咱们必须区分不一样的请求,咱们可使参数传递给这个处理函数。 他是经过事件对象, XMLHttpRequest 对象和设置对象中使用的请求,作每一次ajaxComplete 处理器执行的。举个例子,咱们能限制咱们的回调到只处理事件处理某一特定的URL:this

1
2
3
4
5
6
 
        
$(document).ajaxComplete(function(event, xhr, settings) {
if ( settings.url === "ajax/test.html" ) {
$( ".log" ).text( "Triggered ajaxComplete handler. The result is " +
xhr.responseHTML );
}
});

注意: 你能够获得返回的AJAX内容 察看XML和HTML的xhr.responseXML 或 xhr.responseHTML 之间的分别。url

其余注意事项:

  • 若是global选项设置为false,调用$.ajax() 或 $.ajaxSetup(),.ajaxComplete()方法将不会被触发。

例子:

当Ajax请求完成后显示一个信息。

1
2
3
 
        
$(document).ajaxComplete(function(event,request, settings) {
$( "#msg" ).append( "<li>Request Complete.</li>" );
});
相关文章
相关标签/搜索