我正在创建删除功能来删除系统中的项目。基本上,管理员可以点击删除按钮并删除一个项目。问题出现了,因为有些管理员感到满意或过于热情,因此需要撤消删除。按下按钮时如何取消暂停?
我建议的解决方案涉及一个撤销按钮,它在实际项目被删除之前显示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秒,但我不确定这是否是最有效的方式。
请记住,可能同时多次调用此函数。
要清楚,我知道这个函数不完整(例如不会完全恢复),但这是不相关的。该函数的其余部分只是设置超时部分的上下文。
您在底部添加的好点。我从来没想过这点。最完整和有用的答案。谢谢! – Huey