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, <dialog>-Element oder <details>-Element unmittelbar nach dem Anzeigen oder Verbergen ausgelöst.
- Wenn das Element von "versteckt" zu "angezeigt" wechselt, wird die Eigenschaft
event.oldStateaufclosedund die Eigenschaftevent.newStateaufopengesetzt. - Wenn das Element von "angezeigt" zu "versteckt" wechselt, wird
event.oldStateopensein undevent.newStatewirdclosedsein.
Dieses Ereignis ist nicht abbrechbar.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignishandler-Eigenschaft.
addEventListener("toggle", (event) => { })
ontoggle = (event) => { }
Ereignistyp
Ein ToggleEvent. Erbt von Event.
Beispiele
Der folgende Beispielcode demonstriert, wie das toggle-Ereignis für Popover verwendet werden könnte. Der gleiche Code könnte auf ähnliche Weise für <dialog>- oder <details>-Elemente 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 zum Öffnen und Schließen des Popovers.
<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.
const popover = document.getElementById("mypopover");
popover.addEventListener("toggle", (event) => {
if (event.newState === "open") {
console.log("Popover has been shown");
} else {
console.log("Popover has been hidden");
}
});
Ergebnis
Ein Hinweis zur Ereigniszusammenfassung bei toggle-Ereignissen
Wenn mehrere toggle-Ereignisse ausgelöst werden, bevor die Ereignisschleife eine Chance hat, den Zyklus durchzuführen, wird nur ein einziges Ereignis ausgelöst. Dies wird als "Ereigniszusammenfassung" bezeichnet.
Zum Beispiel:
popover.addEventListener("toggle", () => {
// …
});
popover.showPopover();
popover.hidePopover();
// `toggle` only fires once
Weitere Beispiele
- Öffnen eines modalen Dialogs Beispiel in
HTMLDialogElement
Spezifikationen
| Specification |
|---|
| HTML> # event-toggle> |
Browser-Kompatibilität
Loading…
Siehe auch
popoverHTML-Globalattribut- Popover API
- Verwandtes Ereignis:
beforetoggle