The slotchange
event is fired on an HTMLSlotElement
instance (<slot>
element) when the node(s) contained in that slot change.
Note: the slotchange
event doesn't fire if the children of a slotted node change — only if you change (e.g. add or delete) the actual nodes themselves.
Bubbles | Yes |
Cancelable | No |
Target objects | HTMLSlotElement |
Interface | Event |
The following snippet is taken from our slotchange example (see it live also).
let slots = this.shadowRoot.querySelectorAll('slot'); slots[1].addEventListener('slotchange', function(e) { let nodes = slots[1].assignedNodes(); console.log('Element in Slot "' + slots[1].name + '" changed to "' + nodes[0].outerHTML + '".'); });
Here we grab references to all the <slot>
s, then add a slotchange
event listener to the template's second slot — which is the one which has its contents changed in the example.
Every time the element inserted in the slot changes, we log a report to the console saying which slot has changed, and what the new node inside the slot is.
The slotchange
event implements the Event
interface — it has available the properties and methods defined on this interface.
Specification | Status | Comment |
---|---|---|
DOM The definition of '"Mutation observers" and slotchange event' in that specification. | Living Standard | Initial definition |
Feature | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | (Yes) | No support1 |
(Yes)2 3 63 (63) | No support | (Yes) | (Yes) |
Feature | WebView Android | Chrome Android | Edge Mobile | Firefox Android | Opera Android | Safari iOS |
---|---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | No support1 |
(Yes)2 3 63.0 (63) | (Yes) | (Yes) |
2. Until version 59 (exclusive): this feature is behind the dom.webcomponents.enabled
preference (needs to be set to true
) and the dom.webcomponents.customelements.enabled
preference (needs to be set to true
). To change preferences in Firefox, visit about:config.
3. From version 59: this feature is behind the dom.webcomponents.shadowdom.enabled
preference (needs to be set to true
). To change preferences in Firefox, visit about:config.
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/Events/slotchange