Orlok: Webseite mit Audiofunktion

Beitrag lesen

Hallo Matthias

Es ist nicht möglich, ein play-Event für ein übergeordnetes Element zu registrieren und auf das hochgeblubberte Event zu warten, weil es zum Beispiel für eine Liste kein play-Event gibt.

const players = Array.from(document.getElementsByTagName('audio'));

document.body.addEventListener('play', event => players.forEach(
  element => element !== event.target && element.pause()
), true);

Nur weil ein Event nicht über eine Bubbling-Phase verfügt heißt das nicht, dass man es nicht an ein übergeordnetes Element delegieren kann. In diesem Fall muss man den Eventhandler eben für die Capturing-Phase registrieren.

Gruß,

Orlok