鼠标悬停事件 Lit-Element/Polymer

Mouse-Over event Lit-Element/Polymer

有没有办法在 Lit-Element/Polymer 中创建自定义事件,例如鼠标悬停事件?我一直在寻找这个,但我似乎可以找到一种方法。我知道 Lit-Element 中的事件,比如@click,但对鼠标悬停事件一无所知。

所以我刚刚弄明白了,如果有人有同样的困难,就去post这里。

您必须使用 CustomEvents,这里有一些代码示例:

您应该在元素的 firstUpdate 方法中添加一个新的 EventListener

firstUpdated(){
    this.addEventListener('mouseover', this.mouseOverHandler);
}

并声明方法

   mouseOverHandler(){
       console.log('Hello');
}

就这么简单!!!

这可以使用 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>