paper-ripple mouseDown 事件处理程序 downAction Override

paper-ripple mouseDown event handler downAction Override

聚合物 1.1

paper ripple source code 他们有 mouseDown 事件处理程序:

  /** @param {Event=} event */
  downAction: function(event) {
    var xCenter = this.containerMetrics.width / 2;
    var yCenter = this.containerMetrics.height / 2;

在文档中指出:

paper-ripple listens to "mousedown" and "mouseup" events so it would display ripple effect when touches on it. You can also defeat the default behavior and manually route the down and up actions to the ripple element

但是,在我的自定义元素中,我无法覆盖此处理程序:

        <paper-ripple
          fit
          id="ripple"
          initial-opacity="0.95"
          opacity-decay-velocity="0.98">
        </paper-ripple>
      </section>
    </template>
  </template>

  <script>
    Polymer({
      is: "portfolio-page",
     ...
      downAction: function(e) {
        console.log('sssssssssssssssssssssssss');
      },
      upAction: function(e) {
        this.$.ripple.upAction();
      }

当我通过点击我的元素引发纸张波纹动作时,我没有得到任何控制台输出。

如何覆盖 paper-ripple 侦听的 mouseDown 的默认 downAction 处理程序,如 paper-ripple doc 中所述?

最有可能的文档假设应该添加一个侦听器,例如

listeners: {
    'up' : 'upAction',
    'down' : 'downAction',
}

您仍然可以覆盖这些方法,但这可能不是应该使用 ripple 元素的方式:

ready: function(){
   this.ripplesDownAction = this.$.ripple.downAction.bind(this.$.ripple);
   this.$.ripple.downAction = this.downAction.bind(this);
},

downAction: function(e) {
    console.log('sssssssssssssssssssssssss');
    this.ripplesDownAction();
}