我有以下代码
$('#modal').dialog("option", "buttons", {
Save: SaveMethod,
Cancel: function() {
$(this).dialog("close");
}
});
当我快速多次单击“保存”按钮时(即使我将按钮设置为
disabled='disabled'
),SaveMethod
函数仍会运行几次。在第一个方法调用结束之前,如何防止按钮单击? 最佳答案
SaveMethod
范围之外的变量可以用来跟踪保存时间。
如果SaveMethod
快速完成,您仍然可以多次单击该按钮。在这种情况下,您可以在对话框关闭事件中设置saving = false
,也可以将saving = false
替换为setTimeout(function(){ saving = false; }, 500);
,以便在允许再次保存之前稍作延迟。
$('#modal').dialog("option", "buttons", {
Save: SaveMethod,
Cancel: function() {
$(this).dialog("close");
}
});
var saving = false;
function SaveMethod(){
if(saving) return;
saving = true;
//save code
saving = false;
}