Gehe ich nach deinen Ausführungen, dann ist es so, wenn irgendwann im Programmablauf jemals ein Eventhandler aktiviert wurde, dann ist dieser ab diesem Zeitpunkt ständig aktiv, auch wenn dieser in einer function aktiviert wurde, die im weiteren Programmablauf nicht mehr aufgerufen wird?
In erster Linie scheinen dir die richtigen Begriffe zu fehlen, weshalb ich schon dein Ausgangsposting nicht recht verstanden habe.
Ein Event-Handler wird nicht »aktiviert«, sondern man registriert eine Funktion als Handler für ein gewisses Ereignis. Diese Funktion wird aufgerufen, immer wenn das überwachte Ereignis eintritt. Das Ereignis kann nach dem Registrieren fünftausend Mal eintreten – dann wird die Handler-Funktion auch fünftausend Mal aufgerufen.
Wenn du ein Ereignis nur spezifisch überwachen willst, so kannst du folgendes tun:
- Sofern möglich, überwache das Ereignis an der richtigen Stelle, also einem passenden Element anstatt dokumentweit.
- Beende die Ereignisverarbeitung wieder, wenn sie nicht mehr benötigt wird (siehe Links).
Grundlagen zur Ereignisverarbeitung
Event-Überwachung beenden (beim traditionellen Event-Handling)
Fortgeschrittene Ereignisverarbeitung (addEventListener, removeEventListener)
Mathias