Я использую 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, и мне нужно получить только один за пакет.