[英]Disabling and enabling html tag to prevent multiple clicks
我有這個jQuery的結構:
$(document).on('click', '.view-details', function () {
$(this).prop("disabled", true);
// API call1
// API call2
// API call3
$(this).prop("disabled", false);
}
我已經禁用並啟用了此功能,以防止用戶多次單擊而導致多個問題。
這個問題是API調用是異步的,我不想使其同步。
但是使它們異步將在我不需要的API調用之前執行Line5。 使每個API成功和出錯都啟用它也是一項艱巨的工作。
還有其他更好的建議來確保第2行,第3行,第4行完成后執行第5行嗎?
您可以使用以下方式:
$.when(api1, api2, api3).done(function(){});
您可以將AJAX調用返回的延遲對象放入數組中,然后apply
其應用於$.when
以在所有請求完成后啟用按鈕。 嘗試這個:
$(document).on('click', '.view-details', function () {
var $el = $(this).prop("disabled", true);
var requests = [];
requests.push(request1);
requests.push(request2);
requests.push(request3);
$.when.apply(requests).done(function() {
$el.prop("disabled", false);
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.