slotchange
イベントは、 HTMLSlotElement
インスタンス(<slot>
要素) において、そのスロットが含まれるノードが変更された場合に発生します。
メモ: スロットされたノードの子ノードが変更された場合、 slotchange
イベントは発生しません。つまり実際のノード自体を変更 (例えば、追加または削除) した場合に限ります。
バブリング | あり |
---|---|
キャンセル | 不可 |
インターフェイス | Event |
イベントハンドラープロパティ | なし |
例
次のスニペットは、 slotchange の例から取られています (ライブも参照してください)。
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 + '".');
});
ここではすべての <slot>
への参照を取得し、テンプレートの2番目のスロットに slotchange
イベントリスナーを追加します。この例ではコンテンツが変更されているスロットです。
スロットに挿入された要素が変更されるたびに、どのスロットが変更されたか、スロット内の新しいノードが何であるかを示すレポートがコンソールに記録されます。
仕様書
仕様書 | 状態 | 備考 |
---|---|---|
DOM "Mutation observers" and slotchange event の定義 |
現行の標準 | 初回定義 |
ブラウザーの互換性
BCD tables only load in the browser