Felix Riesterer: clearTimeout(xxx) verursacht Fehler, wenn kein setTimeout(xxx)

Beitrag lesen

Lieber Robbit,

noscript hat Dir ja schon einewn Hinweis gegeben. Ich möchte das etwas genauer formulieren.

window.setTimeout() liefert Dir als Rückgabewert eine Referenz auf das Timeout-Objekt (ich nenne das jetzt einmal so). Diese Referenz musst Du unbedingt irgendwo abspeichern. Das ist Dir ja klar, denn ohne diese Referenz kannst Du den Timeout ja nicht stoppen...

Wenn Du nun den Timeout mit window.clearTimeout() beenden willst, dann kannst Du vorher mit einem if-Statement prüfen, ob Du überhaupt eine gültige Referenz abgespeichert hast.

window.myTimeout = false;  
window.myTimeout = window.setTimeout(function () { ... }, 200);  
if (window.myTimeout)  
    window.clearTimeout(window.myTimeout);

Liebe Grüße aus Ellwangen,

Felix Riesterer.

--
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)