【发布时间】:2017-11-17 18:23:54
【问题描述】:
TL;DR; 是否可以在 HTML(不是 JS)中为自定义事件定义事件监听器?
基于此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 中为自定义事件附加事件侦听器?
【问题讨论】:
-
也许这个答案可以帮助你:stackoverflow.com/a/41218056/4600982 或更可能是这个:stackoverflow.com/a/42321978/4600982
标签: javascript html web-component