2014-02-14 23 views
0

我曾在多个li元素的应用点击事件这样禁用按钮,直到任务完成jQuery?


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

    doSomething(); 

}); 
 

现在我已经在那里,直到DoSomething的完成要求。我希望其他li元素除被点击的元素被禁用并且不允许点击。 doSomething基本上是一个ajax调用。

+0

使得Ajax同步,异步补充:假阿贾克斯参数 –

+0

这将给你一个想法如何做到这一点,http://stackoverflow.com/questions/4898381/how-to-fire -ajax-before-after-after-after-ajax-calling – Adil

回答

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; 
} 
+0

感谢一个锁定是一个好主意。 +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) 
} 
+0

感谢国旗似乎是一个好主意。 +1 –

1

答案:

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

我想我的问题是我如何禁用李元素。它不是按钮,它仍然是可点击的。那么我如何解除其他李的事件 –