HTMLElement: toggle Ereignis
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.
* 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 unmittelbar nach dessen Anzeige oder Ausblendung ausgelöst.
- Wenn das Element vom ausgeblendeten in den angezeigten Zustand wechselt, wird die Eigenschaft
event.oldState
aufclosed
gesetzt und die Eigenschaftevent.newState
aufopen
. - Wenn das Element vom angezeigten in den ausgeblendeten Zustand wechselt, ist
event.oldState
open
undevent.newState
closed
.
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
Einfaches Beispiel
Dieses Beispiel zeigt, wie Sie das toggle
Ereignis überwachen und das Ergebnis protokollieren können.
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 Ereignislistener 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 zum Coalescing von toggle Ereignissen
Wenn mehrere toggle
Ereignisse ausgelöst werden, bevor der Ereignis-Loop die Chance hat, erneut zu durchlaufen, wird nur ein einziges Ereignis ausgelöst. Dies wird als "Ereignis-Coalescing" 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
Siehe auch
popover
HTML-Globalattribut- Popover API
- Verwandtes Ereignis:
beforetoggle