Ok, quindi ho una funzione nella mia applicazione AJAX che attacca un suggerimento nell'angolo dopo un certo periodo di tempo per aiutare l'utente e ciò che sta facendo. C'è anche una seconda funzione che cancella il timeout se l'utente fa clic da qualche altra parte in quanto quel tooltip non sarà più rilevante.Cancella array di setTimeout's
Sto iniziando ad avere un problema ora con l'impostazione di più suggerimenti sui timeout, impostarli va bene, ma non riesco a trovare un modo efficace per cancellarli se l'utente si sposta.
Attualmente il mio codice è simile
var tuttimer = new Array();
function showtooltip(uniqueid, delay){
tuttimer[uniqueid] = setTimeout(function(){
//Create tooltip code here
},delay);
}
function clearTuttimer(){
if(typeof tuttimer != 'undefined'){
for (var i = 0; i < tuttimer.length; i++) {
clearTimeout(tuttimer[i]);
}
}
}
Così l'array tuttimer
viene creato il caricamento della pagina e quindi ogni volta che un utente fa qualcosa che caso, un suggerimento per visualizzare la funzione showtooltip()
viene chiamato e viene dato un unico id e un tempo di ritardo.
Ma se l'utente dovesse passare a qualcos'altro, chiama la funzione clearTuttimer()
che controlla se l'array esiste e quindi scorre e cancella ogni singolo timeout.
Tuttavia questo non funziona. Spero che qualcuno possa indicarmi la giusta direzione. Grazie molto.
Grande che è ancora più pulita di quanto la mia risposta. –