我试图在延迟后删除一个 DOM 元素。我还希望通过用户单击取消此删除(如果他们在计时器到期之前单击。这就是我所拥有的:
<div class="delete">Delete me!</div>
显然,我只显示相关来源。
$("div.delete").click(function() {
var element = $(this),
timeout = element.attr('data-timeout');
if (timeout) {
clearTimeout(timeout);
element.removeAttr('data-timeout');
element.text("Delete me!");
} else {
timeout = setTimeout(function() {
element.remove();
alert('Sniff, too late!');
}, 2000);
element.attr('data-timeout', timeout);
element.text("Save me!");
}
});
这行得通!我的问题
- 有没有更好的办法?我第一次失败的尝试有多个处理程序。
- 为什么它在 Javascript 1.7 中不起作用?