HTMLSlotElement: событие slotchange
Базовая поддержка Широко доступно
Эта функция хорошо поддерживается и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с января 2020 года.
Событие slotchange срабатывает на экземпляре HTMLSlotElement (<slot> элемент), когда содержимое этого слота изменяется.
Примечание: Событие slotchange не срабатывает, если изменяются дочерние элементы узла в слоте — только если изменяются сами узлы (например, добавляются или удаляются).
Для того, чтобы вызвать событие slotchange, необходимо установить или удалить атрибут slot.
Это событие нельзя отменить.
Синтаксис
Используйте имя события в методах, таких как addEventListener(), или установите обработчик событий.
addEventListener("slotchange", (event) => {});
onslotchange = (event) => {};
Тип события
Общее событие Event.
Примеры
element.setAttribute("slot", slotName);
// element.assignedSlot = $slot
element.removeAttribute("slot");
// element.assignedSlot = null
Следующий фрагмент взят из нашего примера slotchange (посмотреть в работе).
let slots = this.shadowRoot.querySelectorAll("slot");
slots[1].addEventListener("slotchange", (e) => {
let nodes = slots[1].assignedNodes();
console.log(
`Element in Slot "${slots[1].name}" changed to "${nodes[0].outerHTML}".`,
);
});
Здесь мы получаем ссылки на все <slot>ы, а затем добавляем обработчик события slotchange к второму слоту шаблона — тот, содержимое которого изменяется в примере.
Каждый раз, когда элемент в слоте изменяется, мы записываем отчёт в консоль, указывая, какой слот изменился и какой новый узел находится внутри слота.
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
slotchange_event |
53 | 79 | 63 | 40 | 10.110–10.1Обработчик событияonslotchange не поддерживается. |
53 | 63 | 41 | 10.310–10.3Обработчик событияonslotchange не поддерживается. |
6.0 | 53 |
См. также
© 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/HTMLSlotElement/slotchange_event