我正在使用 jQuery 来监听 DOMSubtreeModified 事件,然后执行一个函数。我需要的是一种每次事件爆发只运行一次函数的方法。所以在这种情况下,事件只会在 1 秒后运行,并在 3 秒后再次运行。做这个的最好方式是什么?
jQuery
$(function(){
setTimeout(function(){
$('#container')[0].innerHTML = 'test';
$('#container')[0].innerHTML = 'test';
$('#container')[0].innerHTML = 'test';
$('#container')[0].innerHTML = 'test';
$('#container')[0].innerHTML = 'test';
$('#container')[0].innerHTML = 'test';
},1000);
setTimeout(function(){
$('#container')[0].innerHTML = 'test';
$('#container')[0].innerHTML = 'test';
$('#container')[0].innerHTML = 'test';
$('#container')[0].innerHTML = 'test';
$('#container')[0].innerHTML = 'test';
$('#container')[0].innerHTML = 'test';
},3000);
$('#container').bind('DOMSubtreeModified',function(){
console.log('event');
functionToRun();
});
});
HTML
<div id="container"></div>
更新
setTimeout 函数只是为了模拟我的问题。我需要一个不更改 setTimeout 代码的解决方案。我遇到的问题是我得到了 DOMSubtreeModified 事件的爆发,每次爆发我只需要得到一个。