我正在創建刪除功能來刪除系統中的項目。基本上,管理員可以點擊刪除按鈕並刪除一個項目。問題出現了,因爲有些管理員感到滿意或過於熱情,因此需要撤消刪除。按下按鈕時如何取消暫停?
我建議的解決方案涉及一個撤銷按鈕,它在實際項目被刪除之前顯示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