一尘不染

如何在特定的ajax调用上调用.ajaxStart()

ajax

我在站点的文档上有一些ajax调用,这些调用根据ajax状态显示或隐藏进度条

  $(document).ajaxStart(function(){ 
        $('#ajaxProgress').show(); 
    });
  $(document).ajaxStop(function(){ 
        $('#ajaxProgress').hide(); 
    });

我想基本上在网站的其他部分覆盖这些方法,这些地方会进行许多快速的小型ajax调用,并且不需要弹出和弹出进度条。我试图将它们附加到其他$ .getJSON和$
.ajax调用中或将其插入。我已经尝试过将它们链接起来,但是显然那不好。

$.getJSON().ajaxStart(function(){ 'kill preloader'});

阅读 361

收藏
2020-07-26

共1个答案

一尘不染

2018注意: 此答案已过时; 您可以随时对这个答案进行修改,以解决问题。

您可以使用自定义名称空间绑定ajaxStart和ajaxStop:

$(document).bind("ajaxStart.mine", function() {
    $('#ajaxProgress').show();
});

$(document).bind("ajaxStop.mine", function() {
    $('#ajaxProgress').hide();
});

然后,在网站的其他部分,您将 .json调用 之前 临时解除它们的绑定:

$(document).unbind(".mine");

在寻找答案时从这里得到了这个主意。

编辑: I,我还没来得及测试。

2020-07-26