2014-02-14 22 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

我想我的問題是我如何禁用李元素。它不是按鈕,它仍然是可點擊的。那麼我如何解除其他李的事件 –