返回介绍

.ajaxComplete()

发布于 2017-07-27 16:29:16 字数 2176 浏览 1319 评论 0 收藏 0

所属分类:Ajax > 全局 Ajax 事件处理器

.ajaxComplete( handler(event, XMLHttpRequest, ajaxOptions) )

当Ajax请求完成后注册一个回调函数。这是一个 AjaxEvent。返回一个 jQuery 对象。

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

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

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

<div class="trigger">Trigger</div>
<div class="result"></div>
<div class="log"></div>

在 Document 上绑定事件处理器:

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

现在,我们可以使用任何的 jQuery 方法构建一个 Ajax 请求:

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

当我们点击 Class 为 trigger 的元素并且 Ajax 请求完成,这个信息就会显示。

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

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

无论哪一个 Ajax 请求被完成,所有 ajaxComplete 处理函数都将被执行。如果我们必须区分不同的请求,我们可以使参数传递给这个处理函数。 他是通过事件对象, XMLHttpRequest 对象和设置对象中使用的请求,做每一次ajaxComplete 处理器执行的。举个例子,我们能限制我们的回调到只处理事件处理某一特定的URL:

$(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.responseXMLxhr.responseHTML 之间的分别。

其他注意事项:

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

例子

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

$(document).ajaxComplete(function(event,request, settings) {
    $( "#msg" ).append( "<li>Request Complete.</li>" );
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文