jQuery破坏流星中自定义Polymer事件的`detail`

问题描述 投票:1回答:1

我正在Meteor中定义执行自定义fire的Polymer组件:

<polymer-element name="tm-card">
  <template>
    ... content ...
    <paper-button data-rating="good" on-tap="{{rated}}" flex raised> Good! </paper-button>
    <paper-button data-rating="easy" on-tap="{{rated}}" flex> Easy! </paper-button>
  </template>

  <script>
  Polymer({
    rated: function (event, detail, sender) {
      var rating = sender.dataset.rating;
      this.fire('rated', {rating: rating});
    }
  });
  </script>
</polymer-element>

这似乎很好用,我可以在流星上捕​​捉到该事件:

<template name='reviewItem'>
  <tm-card>
    <p class="question">{{question}}</p>
    <p class="answer">{{answer}}</p>
  </tm-card>
</template>


Template.reviewItem.events
  'rated': (evt, tmpl) ->
    console.log 'item rated'
    console.log evt.detail # undefined
    console.log evt.originalEvent.detail # {rating: "easy"}

但是您可以看到事件详细信息丢失了(在“外部”事件中)。外层事件是jQuery.event,原始事件是Polymer触发的CustomEvent

jQuery docs状态:

“以下属性也被复制到事件对象,尽管根据事件的不同,它们的某些值可能是不确定的:

...详细,...“

但是文档并未说明如何处理自定义事件类型。

  • 这是正常的jQuery行为吗?
  • 为了方便起见,Meteor是否将事件包装在jQuery.event中?
javascript jquery meteor polymer dom-events
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.