[英]how can i occupy the change event in shadow dom javascript
我如何在 shadow dom javascript(web 组件)中传播更改事件,因为当我以这种方式尝试时,我进入了一个循环。 我的想法是该事件被称为更改(因为如果我更改它的名称,例如 change1 它可以工作)我该如何解决我的问题? 谢谢
我的代码
class MyComponent extends HTMLElement {
constructor() {
super();
this._shadow = this.attachShadow({ mode: 'open' });
this._shadow.addEventListener('change', function(e){
this._shadow.dispatchEvent(new Event('change', {bubbles: true,composed: true}));
});
}
}
customElements.define('my-component', MyComponent);
然后我希望我的组件占用更改事件,即当我进入循环时
document.getElementById("my-component").addEventListener("change",function(){
console.log("example")
})
这是循环
> Uncaught RangeError: Maximum call stack size exceeded.
> at ShadowRoot.<anonymous>
> at ShadowRoot.<anonymous>
您正在同一元素上附加和调度change
事件。
那是你的无尽循环
this._shadow.addEventListener('change', function(e){
this._shadow.dispatchEvent(new Event('change', {bubbles: true,composed: true}));
});```
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.