Since November 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
The ToggleEvent interface represents an event notifying the user an Element's state has changed.
This is the event object for the HTMLElement beforetoggle and toggle events, which fire on some elements just before and just after they transition between showing and hidden, respectively.
beforetoggle fires on popovers and <dialog> elements.toggle fires on popovers, <dialog> elements, and <details> elements.ToggleEvent()Creates an ToggleEvent object.
This interface inherits properties from its parent, Event.
ToggleEvent.newState Read only
A string (either "open" or "closed"), representing the state the element is transitioning to.
ToggleEvent.oldState Read only
A string (either "open" or "closed"), representing the state the element is transitioning from.
ToggleEvent.source Experimental Read only
An Element object instance representing the HTML control that initiated the toggle.
const popover = document.getElementById("mypopover");
// …
popover.addEventListener("beforetoggle", (event) => {
if (event.newState === "open") {
console.log("Popover is being shown");
} else {
console.log("Popover is being hidden");
}
});
| Specification |
|---|
| HTML> # toggleevent> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
ToggleEvent |
114 | 114 | 120 | 100 | 17 | 114 | 120 | 76 | 17 | 23.0 | 114 | 17 |
ToggleEvent |
114 | 114 | 120 | 100 | 17 | 114 | 120 | 76 | 17 | 23.0 | 114 | 17 |
newState |
114 | 114 | 120 | 100 | 17 | 114 | 120 | 76 | 17 | 23.0 | 114 | 17 |
oldState |
114 | 114 | 120 | 100 | 17 | 114 | 120 | 76 | 17 | 23.0 | 114 | 17 |
source |
140 | 140 | No | 124 | No | 140 | No | No | No | No | 140 | No |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent