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 event

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨Januar 2020⁩.

* Some parts of this feature may have varying levels of support.

Das toggle-Ereignis der HTMLElement-Schnittstelle wird bei einem Popover-Element, einem <dialog>-Element oder einem <details>-Element ausgelöst, gerade nachdem es angezeigt oder versteckt wird.

  • Wenn das Element von versteckt zu sichtbar wechselt, wird die Eigenschaft event.oldState auf closed und die Eigenschaft event.newState auf open gesetzt.
  • Wenn das Element von sichtbar zu versteckt wechselt, wird event.oldState open sein und event.newState closed.

Dieses Ereignis ist nicht abbrechbar (cancelable).

Syntax

Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignishandler-Eigenschaft.

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

ontoggle = (event) => { }

Ereignistyp

Ein ToggleEvent. Erbt von Event.

Event ToggleEvent

Beispiele

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

Einfaches Beispiel

Dieses Beispiel zeigt, wie man auf das toggle-Ereignis hört und das Ergebnis protokolliert.

HTML

Das HTML besteht aus einem Popover und einem Button, um es zu öffnen und zu schließen.

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

JavaScript

Der Code fügt einen Ereignis-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

Eine Notiz zum Coalescing von Toggle-Ereignissen

Wenn mehrere toggle-Ereignisse ausgelöst werden, bevor die Ereignisschleife eine Chance hat, einen Zyklus auszuführen, wird nur ein einziges Ereignis ausgelöst. Dies wird als "Ereignis-Coalescing" bezeichnet.

Zum Beispiel:

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

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

Weitere Beispiele

Spezifikationen

Specification
HTML
# event-toggle

Browser-Kompatibilität

Siehe auch