D'accord, j'ai une fonction dans mon application AJAX qui place une infobulle dans un coin après un certain laps de temps pour aider l'utilisateur à comprendre ce qu'il fait. Il y a aussi une deuxième fonction qui annule le délai si l'utilisateur clique ailleurs, car cette info-bulle ne sera plus pertinente.
J'ai maintenant un problème avec la définition de plusieurs info-bulles sur des délais, les définir est facile mais je ne trouve pas un moyen efficace de les annuler si l'utilisateur passe à autre chose.
Actuellement, mon code ressemble à ceci
var tuttimer = new Array();
function showtooltip(uniqueid, delay){
tuttimer[uniqueid] = setTimeout(function(){
//Code de création de l'infobulle ici
},delay);
}
function clearTuttimer(){
if(typeof tuttimer != 'undefined'){
for (var i = 0; i < tuttimer.length; i++) {
clearTimeout(tuttimer[i]);
}
}
}
Ainsi, le tableau tuttimer
est créé lors du chargement de la page et chaque fois qu'un utilisateur fait quelque chose qui déclenche l'affichage d'une info-bulle, la fonction showtooltip()
est appelée et reçoit un identifiant unique et un délai.
Mais si l'utilisateur passe à autre chose, la fonction clearTuttimer()
est appelée pour vérifier si le tableau existe puis boucle et annule chaque délai individuellement.
Cependant, cela ne fonctionne pas. J'espère que quelqu'un pourra me guider dans la bonne direction. Merci beaucoup.