Desidero attivare un'azione ajax quando l'utente effettua una pausa durante la digitazione (anziché dopo ogni pressione di un tasto). Così ho fatto qualcosa del genere:Timeout JavaScript si attiva 3 volte invece di una volta (clearTimeout non funziona?)
Quando l'utente smette di digitare dopo 3 secondi di inattività, la funzione deve essere eseguita ... (è - ma perché 3 volte per le frasi lunghe - mi aspetto che funzioni solo una volta da quando ho cancellato il timeout dopo ogni keydown). Qual è il problema ?
var timer;
var interval = 3000;
$('#inp').keyup(function() {
timer = setTimeout(done, interval);
});
$('#inp').keydown(function() {
clearTimeout(timer)
});
function done() {
console.log('ajax');
}
esempio Lavorando su jsfiddle: http://jsfiddle.net/vtwVH/
http://stackoverflow.com/questions/1909441/jquery- keyup ritardo –