我试图在延迟后删除 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 中不起作用?
最佳答案
它不适用于 JavaScript 1.7,因为您使用的浏览器不支持它和/或它的嵌入方式。您的 fiddle 在 Firefox 上运行良好。
http://en.wikipedia.org/wiki/Comparison_of_layout_engines_%28ECMAScript%29
关于javascript - 如何取消延迟的 DOM 元素删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12715968/