禁用按钮,直到任务完成jQuery?

时间:2014-02-14 05:46:06

标签: javascript jquery ajax

我已在许多li元素上应用了click事件,例如


jQuery('ul li').click(function(){

   doSomething();

});

现在我有要求直到doSomething完成。我想要其他li元素,除了点击的元素被禁用,不允许点击。 doSomething基本上是一个ajax调用。

3 个答案:

答案 0 :(得分:1)

我会尝试这样的事情:

var lock = false;

jQuery('ul li').click(function(){
   if(lock == true){
      return false; 
   }
   lock = true;
   doSomething();

});

当doSomething完成时设置lock = false;

例如:

success: function(){
   // your ajax success code 
   lock = false;
}

答案 1 :(得分:1)

您可以使用标志和ajax完整回调

var doing = false;
jQuery('ul li').click(function () {
    if (doing) {
        return;
    }
    doing = true;
    doSomething(function () {
        doing = false;
    });
});

function doSomething(complete) {
    $.ajax().always(complete)
}

答案 2 :(得分:1)

答案:

$(function(){
   $("ul.a li").click(function(){
     $(this).show();//disable true condition write here
     $(this).siblings().hide();//disable false condition write here
});
});