I timer, setTimeout() e setInterval() "impazziscono" se attivati ripetutamente mentre sono già in opera; ovvero, con setTimeout() lo puoi ancora fare se attendi la fine del singolo ciclo.
Debonsi () resettare con clearTimeout() e clearInterval() prima di dare un nuovo avvio alla temporizzazione.
nomeTimer = setTimeout('myFunction(), 5);
clearTimeout(nomeTimer)
e vanno nominati, perché il clear possa individuarli.
Non si può però dare l' avvio a un clear per un timer che ancora non esiste, quindi o prima parte il timer comunque, oppure lo si dichiara come variabile globale nello script:
var nomeTimer;
e con questo, l' occorrenza di un clearTimeout() iniziale non produce più impedimento all' esecuzione dello script.