为什么ajax.stop不能只工作一次

时间:2019-02-01 19:46:21

标签: jquery

我想要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;
      }      

我想知道为什么以后再执行另一个ajaxcall时,ajaxstop函数将再次起作用。此时,我从控制台收到了"2)"消息,相反,我看到变量“ Init”为true。

也许我了解ajax.stop的工作方式是否错误?

1 个答案:

答案 0 :(得分:0)

  

注册所有Ajax请求完成后要调用的处理程序。   documentation

所以您可能想做的是这样:

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

所以您只是放错了if条件。

现在ajaxStop()仍将在每次ajax请求完成时继续执行...但是除了页面加载外,什么也不做。