Java Reference
In-Depth Information
Wer ist für die Behandlung zuständig?
Wenn nun ein Ereignis bei einem Knoten 1 in einer Baumstruktur wie dem DOM-Baum auf-
tritt, stellt sich die Frage, welches der Objekte im Baum nun für ein aufgetretenes Ereignis
zuständig ist. Knoten sind immerhin im Baum sehr tief ineinander verschachtelt. Wenn ein
Anwender auf ein Bild in einer Webseite klickt, hat er ja auch gleichzeitig auf die Webseite
selbst geklickt. Ist die Webseite oder das Bild für die Behandlung zuständig? Und wie erfährt
der Knoten der Webseite gegebenenfalls davon, dass auf den untergeordneten Knoten des
Bilds ein Klick erfolgt ist. Oder was soll passieren, wenn mehrere ineinander geschachtelte
Objekte den gleichen Eventhandler besitzen und deshalb auf das Ereignis reagieren könnten?
Der Weg durch den DOM - Event-Bubbling
Die Probleme, beispielsweise Fragen, werden über das sogenannte Event-Bubbling gelöst.
Ein Ereignis wird bei diesem Konzept immer zuerst im innersten Element behandelt, bei
dem es aufgetreten ist - sofern es dort einen geeigneten Eventhandler gibt!
HInWEIS: Ein behandeltes Ereignisobjekt wird nach der Handhabung in einem
Handler sofort vernichtet.
Das innerste Element ist in der Hierarchie des DOM-Baums am weitesten von der Wurzel
entfernt. Hat dieses Element keinen geeigneten Eventhandler, wird das Ereignisobjekt an
das nächsthöhere Objekt im DOM-Baum (dem direkten Vorfahren) weitergeleitet usw. Es
steigt wie eine Blase (Bubble) über alle Vorfahren hinauf bis zur Wurzel. Es blubbert durch
den Baum, bis es behandelt wird.
HInWEIS: Nicht alle Typen von Ereignisobjekten durchlaufen die Bubble-Phase.
Welche Typen das sind, kann sich auch in verschiedenen Browsern unterscheiden.
Wenn es bis zur Wurzel keine Behandlung des Ereignisobjekts gab, wird das Ereignisobjekt
bei einer Variante des Event-Bubblings dort vernichtet 2 .
Allerdings gibt es für das Event-Bubbling auch eine zweite Variante, bei der ein unbehan-
deltes Ereignisobjekt nach Erreichen der Wurzel wieder bis zum auslösenden Element
zurückblubbert und auf dem Weg zurück behandelt werden kann.
9.3.2■Das Ereignisobjekt verwenden
Das Vorhandensein eines solchen Ereignisobjekts ist schön und gut. Nur stellt sich nun die
Frage, wie Sie das Ereignisobjekt wirklich nutzen können? Die Antwort ist einfach und
kompliziert zugleich. Der anspruchslose Teil der Lösung ist, dass man zum Zugrif auf
1 Wie einem Bild oder Absatz.
2 Diese unbehandelte Vernichtung eines Ereignisobjekts bis hinauf zur Wurzel ist der Regelfall - einfach aufgrund
dessen, dass die meisten Ereignisse wie beispielsweise das Verschieben des Mauszeigers keine konkrete Reaktion
der Applikation erzwingen.
 
Search WWH ::




Custom Search