您可以添加一個標誌?
var cartInProcess = false;
$(".simpleCart_shelfItem button").click(function() {
if(cartInProcess == false){
cartInProcess = true;
alert(this.value);
$(this).addClass('disabled');
$(this).html("Adding <i class='icon-spinner9 spin'></i>");
// do your processing
cartInProcess = false;
}else{
alert("Please wait until the process finishes.");
}
});
也可以使用屬性/數據來檢查它而不是全局變量。
$(".simpleCart_shelfItem button").click(function() {
if($(this).data("cartInProcess") == undefined || $(this).data("cartInProcess") == false){
$(this).data("cartInProcess", true);
alert(this.value);
$(this).addClass('disabled');
$(this).html("Adding <i class='icon-spinner9 spin'></i>");
// do your processing
$(this).data("cartInProcess", false);
}else{
alert("Please wait until the process finishes.");
}
});
你說的「如果它處理的代碼」是什麼意思? 'addClass()'和'html()'方法是同步的...? –
'if(!$(this).hasClass('disabled')){// your code}' – Alex
如果服務器需要10秒來處理該請求,我會得到的迴應是10秒後。現在讓我們假設用戶在2秒前點擊了該按鈕,現在如果用戶在4秒後再次點擊該按鈕,即再次將請求發送到服務器。那麼如何在當前請求被處理之前停止它? –