簡體   English   中英

如何在沒有外部庫的情況下處理懸停Polymer方式?

[英]How can I handle a hover the Polymer way without external libraries?

我想我需要做的事情如下:

<li on-mouseover="{{ myHoverHandler }}">blah</li>因為處理點擊次數如下所示:

<li on-click="{{ myClickHandler }}">blah</li>

我已嘗試使用此處文檔中顯示的方式: 聲明性事件映射 ,但on-mouseenteron-mouseover未按預期工作。

我也無法將參數傳遞給我的處理程序,但這是一個不同的故事。

on-mouseoveron-mouseout是正確的,這里是一個演示作為Stack Snippet

 <script src="//cdnjs.cloudflare.com/ajax/libs/polymer/0.3.3/platform.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/polymer/0.3.3/polymer.js"></script> <my-app></my-app> <polymer-element name='my-app'> <template> <button on-mouseover='{{onHovered}}' on-mouseout='{{onUnhovered}}'> A humble button </button> <div> hovered: {{hovered}} </div> </template> <script> Polymer('my-app', { hovered: false, onHovered: function() { this.hovered = true; }, onUnhovered: function() { this.hovered = false; } }) </script> </polymer-element> 

您的元素可能沒有myHoverHandler屬性。 也許有一個錯字?

至於是否使用Polymer事件綁定與其他方法,你絕對可以使用vanilla js或jquery或其他方法。 聚合物處理了一下繁忙的工作,像確保事件處理程序被注冊條件和重復模板,結合this給這通常是你想要的元素,並在注銷處理程序時,其元素從DOM中移除。 有時雖然手動操作也有意義。

實際上它應該是

<button on-mouseover='onHovered' 
        on-mouseout='onUnhovered'>

沒有花括號。 此外,如果需要在事件處理函數中使用它們,則無需傳入屬性。

如果您需要對主機 - 組件本身上的懸停做出反應,您應該使用偵聽器

<dom-module id="hoverable-component">
  <template>

    <div>Hoverable Component</div>

  </template>

  <script>
    Polymer({
      is: 'hoverable-component',

      listeners: {
        mouseover: '_onHostHover',
        mouseout: '_onHostUnhover',
      },

      _onHostHover: function(e){
        console.debug('hover');  
      },

      _onHostUnhover: function(e){
        console.debug('unhover');  
      },

    });
  </script>
</dom-module>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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