簡體   English   中英

禁用和啟用html標簽以防止多次單擊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM