2 回答

TA貢獻1841條經驗 獲得超3個贊
您可以向自定義元素類添加一個方法
class Icicle extends HTMLElement {
connectedCallback() {
console.log('x-icicle element initiated')
}
listen(el) {
el.addEventListener('click', function() {
console.log('Button clicked')
})
}
}
customElements.define('x-icicle', Icicle)
document.querySelector('x-icicle').listen(document.querySelector('button'))
<button>
Button
</button>
<x-icicle></x-icicle>

TA貢獻1839條經驗 獲得超15個贊
一個解決方案是使用CustomEvent
看看下面的例子(我用了一個簡單的span
而不是你的自定義元素,但它會完全一樣)
const button = document.getElementById('button');
const span = document.getElementById('span');
button.addEventListener('click', evt => {
? ? span.dispatchEvent(new CustomEvent('myEvent'));
});
span.addEventListener('myEvent', evt => {
? ? span.innerHTML = 'button has been clicked';
});
<button id="button">button</button>
<span id="span"></span>
添加回答
舉報