Event Propagation
Zuletzt aktualisiert
Zuletzt aktualisiert
Event Propagation beschreibt den Prozess, wie sich Events (wie Klicks oder Tastatureingaben) durch den DOM-Baum einer Webseite ausbreiten - zunächst in der Capturing-Phase von oben nach unten, dann in der Bubbling-Phase von unten nach oben durch die verschachtelten HTML-Elemente.
Es passiert folgendes, wenn beispielweise ein Click Event erstellt wird:
Das Event durchläuft nun wieder jedes Parent-Element bis zum document
. Wenn das passiert ist es für JavaScript so, als ob das Event auch in einem der Parent-Elemente passiert wäre.
Das heisst wir können an unsere Parent-Elemente ebenfalls Event-Listener anhängen. Diese werden auch dann aufgerufen, wenn ein Child-Element das Target-Element war.
Mit einem kleinen Trick können wir uns das auch in der Capturing Phase zu nutze machen.
Um die Events in der Bubbling Phase abzufangen, müssen wir Event-Handler an die Parent-Elemente anhängen.
Wenn wir nun auf ein Element mit der Klasse .nav__link
klicken, werden sowohl bei diesem Element, als auch .nav__links
und .nav
die Hintergrundfarben verändert.
target
und currentTarget
Das Target-Element ist bei jedem der obigen Event-Listener gleich. Jedoch können wir auf das eigentliche Target-Element über currentTarget
zugreifen.
Um dieses Verhalten zu verhindern können wir im Target-Element die Methode stopPropagation
auf dem Event aufrufen.
Wir können das Standardverhalten des Event-Listeners mit einem Argument überschreiben:
Jetzt wird das Event in der Capturing Phase abgefangen und nicht in der Bubbling Phase.
document