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

    在AJAX 请求完成时执行一个处理函数。这是一个 Ajax Event。

    .ajaxStop(handler)
    • handler类型:Function()。被调用的函数。

    每当一个Ajax请求完成,jQuery检查是否有任何其他响应过程中的Ajax请求(注:未完成的请求)。如果都执行完成,jQuery就会触发ajaxStop事件,在这个时间点所有处理函数都会使用.ajaxStop()方法注册并执行。如果一个未处理完成的Ajax请求用beforeSend回调函数返回false取消,ajaxStop事件也被触发

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

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

    在document上绑定事件处理器:

    $( ".log" ).ajaxStop(function() {
      $(this).text( "Triggered ajaxStop handler." );
    });
    

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

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

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

    其他注意事项:

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

    例子

    在Ajax请求停止后隐藏加载信息:

    $(document).ajaxStop(function() {
          $( "#loading" ).hide();
    });
    

    上篇:ajaxStart()

    下篇:ajaxComplete()