簡體   English   中英

我如何才能占據影子 dom javascript 中的更改事件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM