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>
添加回答
举报