hallo
Könnt ihr mir einen Tipp geben?
Du kannst mit der Methode
Element.closest(selectors)
prüfen, ob eines der Vorfahrenelemente (inklusive dem Kontextelement selbst) einnav
ist.document.body.addEventListener('click', event => event.target.closest('nav') && console.info('click in nav'))
Wenn
closest
kein Element findet, dann wirdnull
zurückgegeben. Die Methode wird allerdings von einigen (vermutlich) relevanten Browsern noch nicht unterstützt, da müsste also gegebenenfalls noch für einige Zeit ein Polyfill eingebunden werden.
Das werde ich mir auf jeden Fall mal anschauen. Bis jetzt habe ich das nur als jQuery-Methode gesehen.
Alternativ kannst du natürlich eine oder mehrere Referenzen auf die
nav
-Elemente der Seite speichern und dann mittelsNode.contains(otherNode)
vergleichen.
Auch das ist Neuland.
const nav = document.querySelector('nav'); document.body.addEventListener('click', event => nav.contains(event.target) && console.info('click in nav'))
Ja, das entspricht absolut meiner Vorstellung.
Vielen Dank, das gibt mir neue Forschungsziele. Eventuell brauche ich ja nicht mal ein polyfill, sondern kann für seltene Browser eine alte Methode bereitstellen.
Neu im Forum! Signaturen kann man ausblenden!