【发布时间】:2014-01-18 06:59:57
【问题描述】:
我正在创建一个删除函数来从系统中删除项目。基本上,管理员可以单击删除按钮并删除一个项目。问题出现是因为一些管理员很高兴或过于热情,因此需要撤消删除。
我建议的解决方案是在实际项目被删除之前显示 20 秒的撤消按钮,类似于 Gmail 实验室中的撤消发送电子邮件功能。
function deleteStuff(type,id){
var element = $("#"+type+id);
element.slideUp(500,function(){element.html("<button class='btn undoDelete' >UNDO</button>");});
var timeout = window.setTimeout(element.slideDown(),20000);
if($(".undoDelete").click()){
clearTimeout(timeout);
//replace the item
} else {
//delete the item with ajax
}
}
我知道您可以使用stop() 或clearTimeout() 停止超时,但我想知道如何在函数中执行此操作。到目前为止,我已经考虑过每秒检查一次点击,直到 20 秒,但我不确定这是否是最有效的方法。
请记住,这个函数可能会被同时调用多次。
明确地说,我知道此功能不完整(例如,不会完全恢复),但这无关紧要。该函数的其余部分只是为超时部分设置上下文。
【问题讨论】:
标签: javascript jquery timeout