Функция срабатывает по событию oninput, задержка необходима для предотвращения тормозов вызванных слишком частым срабатыванием функции, например при зажатии клавиши backspace.
function f(event) {
if (f.rest) {
f.alarm = true; // Ставим будильник, мол функцию пытались вызвать пока она "отдыхала".
f.this = this; // Записываем текущий объект и объект события.
f.event = event;
return;
}
// Тело функции.
f.rest = true; // Отправляем функцию "на отдых".
setTimeout(function() {
f.rest = false;
if (f.alarm) {
f.alarmt = false;
f.call(f.this, f.event); // Вызов запустит еще один таймер, но f.alarm уже будет false.
}
}, 100);
}