HTMLElement: 切换事件
的 toggle
事件 HTMLElement
接口在 弹出窗口 元素(即具有有效 popover
属性的元素)上触发,紧接其显示或隐藏之后。
- 如果弹出窗口元素从隐藏状态转换为显示状态,则
event.oldState
属性将设置为closed
,而event.newState
属性将设置为open
。 - 如果弹出窗口元素从显示状态转换为隐藏状态,则
event.oldState
将为open
,而event.newState
将为closed
。
语法
在诸如 addEventListener()
之类的方法中使用事件名称,或设置事件处理程序属性。
js
addEventListener("toggle", (event) => {});
ontoggle = (event) => {};
事件类型
一个 ToggleEvent
。继承自 Event
。
示例
基本示例
js
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");
}
});
关于切换事件合并的说明
值得指出的是,toggle
事件是合并的,这意味着如果在事件循环有机会循环之前触发了多个 toggle
事件,则只会触发一个事件。
例如
js
popover.addEventListener("toggle", () => {
//...
});
popover.showPopover();
popover.hidePopover();
// `toggle` only fires once
规范
规范 |
---|
HTML 标准 # event-toggle |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
另请参见
popover
HTML 全局属性- 弹出窗口 API
- 相关事件:
beforetoggle