Я хочу запустить ajax-действие, когда пользователь делает паузу при наборе текста (а не после каждого нажатия). Поэтому я сделал что-то вроде этого:
Когда пользователь перестает печатать после 3 секунд выполнения незанятой функции, она должна выполняться... (это - но почему 3 раза для длинных фраз - я ожидаю, что она будет работать только один раз, так как я очищаю таймаут после каждого нажатия клавиши). В чем проблема?
var timer;
var interval = 3000;
$('#inp').keyup(function() {
timer = setTimeout(done, interval);
});
$('#inp').keydown(function() {
clearTimeout(timer)
});
function done() {
console.log('ajax');
}
Рабочий пример на jsfiddle: http://jsfiddle.net/vtwVH/