Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

HTMLElement: toggle-Ereignis

Baseline
Weitgehend verfügbar
*

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Januar 2020 browserübergreifend verfügbar.

* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.

Das toggle-Ereignis der HTMLElement-Schnittstelle wird auf einem Popover-Element, einem <dialog>-Element oder einem <details>-Element ausgelöst, unmittelbar nachdem es angezeigt oder verborgen wurde.

  • Wenn das Element vom verborgenen in den angezeigten Zustand übergeht, wird die Eigenschaft event.oldState auf closed und die Eigenschaft event.newState auf open gesetzt.
  • Wenn das Element vom angezeigten in den verborgenen Zustand übergeht, ist event.oldState gleich open und event.newState gleich closed.

Dieses Ereignis kann nicht abgebrochen werden.

Syntax

Verwenden Sie den Ereignisnamen in addEventListener():

js
addEventListener("toggle", (event) => { })

Alternativ können Sie ihn der Event-Handler-Eigenschaft der Schnittstelle zuweisen:

js
ontoggle = (event) => { }

Ereignistyp

Ein ToggleEvent. Erbt von Event.

Event ToggleEvent

Beispiele

Der folgende Beispielcode zeigt, wie das toggle-Ereignis für ein Popover verwendet werden kann. Derselbe Code kann auf die gleiche Weise für ein <dialog>- oder <details>-Element verwendet werden.

Einfaches Beispiel

Dieses Beispiel zeigt, wie Sie auf das toggle-Ereignis lauschen und das Ergebnis protokollieren.

HTML

Das HTML besteht aus einem Popover und einem Button, mit dem es geöffnet und geschlossen werden kann.

html
<button popovertarget="mypopover">Toggle the popover</button>
<div id="mypopover" popover>Popover content</div>

JavaScript

Der Code fügt einen Event-Listener für das toggle-Ereignis hinzu und protokolliert den Zustand.

js
const popover = document.getElementById("mypopover");

popover.addEventListener("toggle", (event) => {
  if (event.newState === "open") {
    log("Popover has been shown");
  } else {
    log("Popover has been hidden");
  }
});

Ergebnis

Hinweis zur Zusammenfassung von toggle-Ereignissen

Wenn mehrere toggle-Ereignisse ausgelöst werden, bevor die Ereignisschleife einen Durchlauf abschließen kann, wird nur ein einziges Ereignis ausgelöst. Dies wird als „Event Coalescing“ bezeichnet.

Zum Beispiel:

js
popover.addEventListener("toggle", () => {
  // …
});

popover.showPopover();
popover.hidePopover();
// `toggle` only fires once

Weitere Beispiele

Spezifikationen

Spezifikation
HTML
# event-toggle

Browser-Kompatibilität

Siehe auch