jquery 为什么 AJAX .stop不只一次起作用?

aydmsdu9  于 2022-11-03  发布在  jQuery
关注(0)|答案(1)|浏览(116)

我希望 AJAX .stop函数只工作一次-在第一次加载页面的时候,之后,我就不需要这个函数了。为此,我已经用这段代码试过了。

if(init===false)
      {     
            console.log('1) loadpage start');
            load_page(<?php echo $page->id;?>);
            //Wait till the page is recieved, than go on
            $(document).ajaxStop(function() {
                  console.log('2) load page -> ajaxStopp init:'+init);
                  setup_elements();
            });                       
            init=true;
      }

我想知道为什么ajaxstop函数会再次工作,如果我稍后做另一个ajaxcall.在这我得到了来自控制台的"2)"消息,而不是我看到变量“Init”是真的.
也许我理解了ajax.stop的工作方式是错误的?

mctunoxg

mctunoxg1#

注册一个处理程序,以便在所有 AJAX 请求完成后调用。documentation
因此,您可能希望执行以下操作:

$(document).ajaxStop(function() {
  if(init===false){
    console.log('2) load page -> ajaxStopp init:'+init);
    setup_elements();
    init=true;
  }
});

因此,您只是放错了if条件。
现在ajaxStop()仍然会在每次 AJAX 请求完成时执行...但是除了页面加载之外,什么都不做。

相关问题