jQuery - 忽略双重AJAX调用?

时间:2015-06-26 00:48:58

标签: javascript jquery ajax jquery-plugins double-click

我在多个地方附加了AJAX调用(不幸的是不仅是按钮,还有链接,表单和其他内容),我知道如何手动处理(找到我做AJAX调用的每个地方然后阻止/覆盖按钮在第一次通话期间,我想知道是否有更自动化的方法?

如果我们正在谈论jQuery - 也许是一个插件?什么会起作用? :)

完美地拥有类似的东西:

if clicked element has .ajax class 
  block all ajax requests if the current one is still live

然后我将.ajax类添加到每个按钮/链接/触发请求的任何内容和瞧。有这样的事吗?

1 个答案:

答案 0 :(得分:4)

您可以创建全局变量:

loadingAjax = false;

每当事件触发时,您可以使用:

将此变量设置为TRUE
$("selector").click(function(){
  if(!loadingAjax){
    loadingAjax = true;
    $.ajax(options)..
  }
});

当ajax停止时,你应该将loadingAjax变回false:

$( document ).ajaxStop(function() {
    loadingAjax = false
});