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 January 2020.
Das toggle
-Ereignis des HTMLElement
-Interfaces wird bei einem Popover-Element, einem <dialog>
-Element oder einem <details>
-Element unmittelbar nach dessen Anzeige oder Ausblenden ausgelöst.
- Wenn das Element vom Zustand "versteckt" zu "sichtbar" wechselt, wird die Eigenschaft
event.oldState
aufclosed
und die Eigenschaftevent.newState
aufopen
gesetzt. - Falls das Element von "sichtbar" zu "versteckt" wechselt, wird
event.oldState
aufopen
undevent.newState
aufclosed
gesetzt.
Dieses Ereignis ist nicht cancelable.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener()
oder setzen Sie eine Ereignis-Handler-Eigenschaft.
addEventListener("toggle", (event) => {});
ontoggle = (event) => {};
Ereignistyp
Ein ToggleEvent
. Erbt von Event
.
Beispiele
Einfaches Beispiel
Dieses Beispiel zeigt, wie man dem toggle
-Ereignis zuhört und das Ergebnis protokolliert.
HTML
Das HTML besteht aus einem Popover und einem Button, um es zu öffnen und zu schließen.
<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.
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
Eine Anmerkung zur Zusammenfassung von toggle-Ereignissen
Wenn mehrere toggle
-Ereignisse ausgelöst werden, bevor der Ereignisschleifen-Zyklus durchläuft, wird nur ein einziges Ereignis ausgelöst. Dies wird als "Ereignis-Zusammenfassung" 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 Standard # event-toggle |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
popover
HTML Globales Attribut- Popover API
- Verwandtes Ereignis:
beforetoggle