Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
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>
<pre id="log"></pre>
#log {
 height: 150px;
 overflow: scroll;
 padding: 0.5rem;
 border: 1px solid black;
}
const logElement = document.querySelector("#log");
function log(text) {
 logElement.innerText = `${logElement.innerText}${text}\n`;
 logElement.scrollTop = logElement.scrollHeight;
}
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