• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • ajaxSuccess()

    绑定一个函数当 Ajax 请求成功完成时执行。这是一个Ajax Event.

    .ajaxSuccess(handler)

    handler类型:Function(Event event, jqXHR jqXHR, PlainObject ajaxOptions, PlainObject data)。被调用的函数。

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

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

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

    在document任何元素上绑定事件处理器:

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

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

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

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

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

    $(document).ajaxSuccess(function(event, xhr, settings) {
      if ( settings.url == "ajax/test" ) {
        $( ".log" ).text( "Triggered ajaxSuccess handler. The ajax response was: " +
                          xhr.responseText );
      }
    });
    

    注意:你可以得到返回的AJAX内容察看XML和HTML的xhr.responseXMLxhr.responseHTML之间的分别。

    其他注意事项:

    • 在jQuery1.9中,jQuery全局AJAX事件的所有处理程序,包括哪些.ajaxSuccess()添加的方法,必须附加到document上。
    • 如果$.ajax()$.ajaxSetup()调用时,global选项设置为false.ajaxSuccess()将不会触发。

    例子

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

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

    上篇:ajaxComplete()

    下篇:ajaxError()