Я хочу запустить 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/