Aloha!
was du gemacht hast war ganz simpel. wenn du sagst var test; dann wird die Variable immer geleert, also neu erstellt. Das heisst das in dem handel active kein input war und so konnte die Funktion clearTimeout() nicht richtig ausgeführt werden. so simpel aber man muss trotzdem drafu kommen.
Nö. mit "var variable" wird eine im umgebenden Block lokale Variable angelegt. Das bedeutet: Nach Ende der Funktion wird ihr Wert vergessen. Logischerweise kann beim nächsten Funktionsaufruf dann der Timeout nicht mehr gelöscht werden.
Besser: Außerhalb der Funktion mit "var variable" eine globale Variable anlegen, auf die innerhalb der Funktion zugegriffen werden kann. Das Weglassen von "var" hat eher zufällig die richtigen Auswirkungen.
- Sven Rautenberg