有没有办法在 Lit-Element/Polymer 中创建自定义事件,例如鼠标悬停事件?我一直在寻找这个,但我似乎可以找到一种方法。我知道 Lit-Element 中的事件,例如 @click,但对鼠标悬停事件一无所知。
问问题
2194 次
2 回答
4
这可以使用 lit-html@event
绑定来完成。
对于mouseover
事件类型,使用@mouseover="${this.handleMouseover}"
有关 lit-element 事件侦听器的更多信息,请参阅 https://lit-element.polymer-project.org/guide/events
现场示例:
<script src="https://unpkg.com/@webcomponents/webcomponentsjs@latest/webcomponents-loader.js"></script>
<script type="module">
import { LitElement, html, css } from 'https://unpkg.com/lit-element/lit-element.js?module';
class MyElement extends LitElement {
static get styles() {
return [
css`
span {
padding: 4px 8px;
border: 2px solid orange;
}
`
];
}
render() {
return html`
<span
@mouseover="${this.handleEvent}"
@mouseleave="${this.handleEvent}">
Hover me
</span>
`;
}
handleEvent(e) {
console.log(`Event type: ${e.type}`);
}
}
customElements.define('my-element', MyElement);
</script>
<my-element></my-element>
于 2019-12-31T00:37:40.953 回答
1
所以我只是想通了,如果有人有同样的困难,就在这里发帖。
您必须使用 CustomEvents,这里有一些代码示例:
在元素的 firstUpdate 方法中,您应该添加一个新的 EventListener
firstUpdated(){
this.addEventListener('mouseover', this.mouseOverHandler);
}
并声明方法
mouseOverHandler(){
console.log('Hello');
}
就那么简单!!!
于 2019-03-13T00:11:48.387 回答