Spec-Zone.ru › Web APIs

HTMLElement: событие toggle

Базовая Широко поддерживается *

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с января 2020 года.

* Некоторые части этой функции могут иметь различный уровень поддержки.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Событие toggle интерфейса HTMLElement срабатывает на элементе поповера, элементе <dialog> или элементе <details> сразу после того, как он отобразился или скрылся.

  • Если элемент переходит от скрытого к отображаемому, свойство event.oldState будет установлено в closed, а свойство event.newState будет установлено в open.
  • Если элемент переходит от отображаемого к скрытому, тогда event.oldState будет open, а event.newState будет closed.

Это событие не является отменяемым.

Синтаксис

Используйте имя события в методах, таких как addEventListener(), или установите свойство обработчика событий.

addEventListener("toggle", (event) => {});

ontoggle = (event) => {};

Тип события

A ToggleEvent. Наследуется от Event.

Событие ToggleEvent

Примеры

Приведенный ниже пример кода демонстрирует, как событие toggle может использоваться для поповера. Тот же код может использоваться для элементов <dialog> или <details> аналогичным образом.

Базовый пример

Этот пример демонстрирует, как прослушать событие toggle и вывести результат.

HTML

HTML состоит из поповера и кнопки для его открытия и закрытия.

<button popovertarget="mypopover">Toggle the popover</button>
<div id="mypopover" popover>Popover content</div>

JavaScript

Код добавляет обработчик события toggle и выводит состояние.

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 срабатывают до того, как цикл событий успевает выполнить свой цикл, будет выполнено только одно событие. Это называется «слиянием событий».

Например:

popover.addEventListener("toggle", () => {
  //...
});

popover.showPopover();
popover.hidePopover();
// `toggle` only fires once

Другие примеры

  • Открытие модального диалогового окна пример в HTMLDialogElement

Спецификации

Спецификация
HTML
# event-toggle

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
toggle_event 36 79 49 23 10.1 36 49 24 10.3 3.0 37
details_elements 36 79 49 23 10.1 36 49 24 10.3 3.0 37
dialog_elements 132 132 133 117 Нет 132 133 Нет Нет Нет 132
popover_elements 114 114 125 100 17 114 125 76 17 23.0 114

См. также

  • popover Глобальное атрибут HTML
  • API поповера
  • Связанное событие: beforetoggle

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API