遅れて 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 で動作しないのはなぜですか?