beatovich: click-within javascript test

Beitrag lesen

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) ein nav ist.

document.body.addEventListener('click', event => event.target.closest('nav') && console.info('click in nav'))

Wenn closest kein Element findet, dann wird null 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 mittels Node.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!