TL; DR; 是否可以在HTML(非JS)中爲自定義事件定義事件偵聽器?針對webcomponents /自定義事件(JS)的基於HTML的事件偵聽器
在此基礎上codepen,我試圖做到以下幾點:
<my-checkreport
onclick="myFunction()"
oncheck="myFunction1)"
check="myFunction()"
></my-checkreport>
其中myFunction
做一些console.log
的東西,我可以在瀏覽器控制檯中看到。本地onlick
作品,當然,但既不oncheck
也不check
工作,爲自定義事件定義如下:(從上面取源鏈接codepen):
customElements.define('my-checkbox', class extends HTMLElement {
constructor() {
super();
const shadowRoot = this.attachShadow({mode: 'open'});
this.checkEvent = new CustomEvent("check", {
bubbles: true,
cancelable: false,
});
shadowRoot.innerHTML = `
<label>
<input type="checkbox" id="my-checkbox"></input>
Dummy Enabled
</label>`;
shadowRoot.querySelector('#my-checkbox').addEventListener('click', (e) => {
console.log('checked', e.target.checked);
this.dispatchEvent(this.checkEvent);
});
}
});
是否有可能把事件偵聽器在HTML自定義事件?
也許這個答案可以幫助你:https://stackoverflow.com/a/41218056/4600982或更可能是這一個:https://stackoverflow.com/a/42321978/4600982 – Supersharp