jQuery破坏Meteor中自定义聚合物事件的“细节”
jQuery destroying `detail` of custom Polymer events in Meteor
我正在Meteor中定义一个聚合物组件,该组件执行自定义fire
:
<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>
这似乎工作得很好,我可以在Meteor:中捕捉到事件
<template name='reviewItem'>
<tm-card>
<p class="question">{{question}}</p>
<p class="answerswer">{{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文档指出:
"以下属性也被复制到事件对象,尽管根据事件的不同,它们的一些值可能未定义:
细节"
但是文档没有说明如何处理自定义事件类型。
- 这是正常的jQuery行为吗
- Meteor是否将事件包装在
jQuery.event
中以方便我
我发现了一个类似的问题:Javascript CustomEvent细节没有通过
然后我发现了以下提交:https://github.com/jquery/jquery/commit/a90ff8c8c79bfcc32afd340a12f016f20a31d8b6
这个修复程序在jQuery的compat
分支中,应该从jQuery 3.0开始修复,所以我现在将回答我自己的问题。
相关文章:
- 分派点击事件并保留击键修饰符
- 模糊事件的Javascript测试
- keyup事件处理程序更改焦点不适用于快速键入
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使Javascript动态html表及其上的事件
- 使用类从一个标记中双击事件
- 如何在未直接触发的情况下停止事件
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 对iPad上的点击事件反应缓慢
- 事件和状态
- Fancybox是否将Click事件静音
- 主干-不管怎样,检查事件以前是否绑定过
- 从控制器返回后Ajax启动事件激发
- 如何从画布上的某个移动事件中获取X和Y
- Jquery:未触发select事件
- JsFiddle上的鼠标事件不起作用
- 只覆盖箭头键滚动事件
- 如何在master中调用细节网格作为单击事件
- jQuery破坏Meteor中自定义聚合物事件的“细节”
- 寻找关于KineticJS与组及其子事件触发的细节