2016-11-24 156 views
0

當用戶點擊比動作完成更快時,存在常見問題。在啓動相同功能之前停止執行JQuery功能

在前端,有上X編輯按鈕。當用戶點擊一行時,js觸發這個函數。

$('.edit').click(function() { 
    var id = $(this).attr('data-id'); 
    $('#registrantDetails').load("/dashboard/edit-conference-registration/" + id + "/{{ confName }}") 
}} 

但再次點擊,第二個動作的等待後率先完成等

我想問如何停止.load()函數之前啓動另一個?

+0

添加標記爲'isProcessing',如果其真正的,只是返回 – Rajesh

+0

您可以禁用按鈕,並從'負載重新啓用它()'完成回調 –

回答

2

只要添加變量來處理這個工作。

var isWorking = false; 
$('.edit').click(function() { 
    if (isWorking) return; 
    isWorking = true; 
    var id = $(this).attr('data-id'); 
    $('#registrantDetails').load("/dashboard/edit-conference-registration/" + id + "/{{ confName }}"); 
    isWorking = false; 
}); 
1

試試這個:

$('.edit').click(function() { 
    var id = $(this).attr('data-id'); 
    $('#registrantDetails').unbind('load'); 
    $('#registrantDetails').load("/dashboard/edit-conference-registration/" + id + "/{{ confName }}") 
}}