Ok, also ich habe eine Funktion in meiner AJAX-Anwendung, die eine Tooltip in der Ecke nach einer gewissen Zeit hält, um den Benutzer mit dem, was sie tun, zu helfen. Es gibt auch eine zweite Funktion, die das Timeout löscht, wenn der Benutzer irgendwo anders klickt, da dieser Tooltip nicht mehr relevant ist.Klare Array von setTimeout
Ich habe jetzt ein Problem mit dem Setzen mehrerer Tooltips auf Timeouts, Einstellung ist in Ordnung, aber ich kann keine effiziente Möglichkeit finden, sie abzubrechen, wenn der Benutzer weitergeht.
Derzeit sieht mein Code wie dieser
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]);
}
}
}
So ist die tuttimer
Array auf Seite Last erzeugt wird, und dann, wenn ein Benutzer etwas tut, das ein Tooltip Fall würde die showtooltip()
Funktion zum Anzeigen aufgerufen und eine einzigartige gegeben ID und eine Verzögerungszeit.
Aber wenn der Benutzer zu etwas anderem weitergehen würde, ruft er die Funktion clearTuttimer()
auf, die überprüft, ob das Array existiert und dann jedes einzelne Timeout durchläuft und löscht.
Dies funktioniert jedoch nicht. Hoffentlich kann mir jemand in die richtige Richtung zeigen. Danke vielmals.
Große, das ist sogar sauberer als meine Antwort. –