我试图在聚合物自定义元素中避免使用event capturing,因此我只想在元素中包含的['items']激发时才触发事件。
我有两个不同的自定义元素。两个自定义元素都在扩展core-selector。 一个是包装另一个。
所以我有类似的东西:
<my-parent-element>
<parentItem>I'm a parent
<my-child-element>
<childItem>I'm a child</childItem>
<childItem>I'm a child</childItem>
<childItem>I'm a child</childItem>
</my-child-element>
</parentItem>
<parentItem>I'm a parent</parentItem>
<parentItem>I'm a parent</parentItem>
</my-parent-element>
自定义元素定义
<my-parent-element>
拥有自己的核心选定事件处理程序。<my-child-element>
没有脚本也没有事件处理程序。我的目标:
<my-parent-element>
的项目时才会显示该事件
触发。场合
基于this answer我正在停止检查所收到项目的方法,但我认为这不是一个合适的解决方案......
onCoreSelect: function (event, detail, sender) {
if (!detail.item.classList.contains('child')) {
return; //Dislike!
}
);
...因为我甚至不想触发该方法。
您可以在this Plunker中重现它。 onCoreSelect写入详细信息,但只选择父项应该这样做。如您所见,当点击任何子项时,它会触发事件。
THX!
答案 0 :(得分:0)
仅在使用声明性事件映射完成“由项目激发”时调用方法。
以下是文档和示例:
https://www.polymer-project.org/docs/polymer/polymer.html#declarative-event-mapping