Я использую тот же тип тайм-аута, который вы хотите для ключевых событий, чтобы определить, когда пользователь закончил печатать, такой же подход может быть использован для вашей проблемы:
// helper function
var timeout = (function(){
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
};
})();
Использование:
// YUI 2
YAHOO.util.Event.addListener(oElement, "change", function () {
timeout(function () {
// one second since the last selection change
}, 1000);
});
// YUI 3
Y.on("click", function () {
timeout(function () {
// one second since the last selection change
}, 1000);
}, oElement);
В основном в этой функции timeout
я сбрасываю таймер, если функция вызывается до указанной задержки.