Polymer 聚合:从父元素捕获子元素的事件
我想知道如何从父元素捕获子元素中发生的事件,如下所示。我知道这个方法可以使用Polymer 聚合:从父元素捕获子元素的事件,polymer,Polymer,我想知道如何从父元素捕获子元素中发生的事件,如下所示。我知道这个方法可以使用this捕获事件,但我需要从子元素获取它 我不想从li捕获事件,并通过全局变量或其他类似方式将信息传输到foo,因为我最终将实现一个mousemove事件,该事件发送每个触发器的鼠标位置,通过全局变量技术(如API中所示)发送此消息将极为低效,并会降低应用程序的速度 <polymer-element name="foo"> <template> <ul> <
this
捕获事件,但我需要从子元素获取它
我不想从li
捕获事件,并通过全局变量或其他类似方式将信息传输到foo
,因为我最终将实现一个mousemove
事件,该事件发送每个触发器的鼠标位置,通过全局变量技术(如API中所示)发送此消息将极为低效,并会降低应用程序的速度
<polymer-element name="foo">
<template>
<ul>
<li>This is my child element</li>
</ul>
</template>
<script>
Polymer('foo', {
ready: function() {
document.querySelector('li').addEventListener('mousedown', function() {
console.log('mousedown event working');
})
}
});
</script>
</polymer-element>
- 这是我的子元素
聚合物(‘foo’{
就绪:函数(){
document.querySelector('li')。addEventListener('mousedown',function(){
log('mousedown event working');
})
}
});
提前感谢您提供的任何见解。不要使用
document.querySelector()
,因为您的li
元素位于聚合物元素的内部。顺便说一句,元素名称不正确
您可以使用聚合物的特性来获得li
元素。为元素分配一个id并使用this.$
属性(或者,如果不想分配id,可以使用this.shadowRoot.querySelector()
):
你知道有什么方法可以像普通的js函数一样通过
{mousedown}
在”>中传递变量吗?你可以。我试过了,得到了[client panel:\u createEventHandler]:监听器方法{mousedown}控制台中未定义
警告,无法工作。我去掉了花括号,效果很好。
<li id="item">This is my child element</li>
this.$.item.addEventListener(...);
<polymer-element name="my-foo">
<template>
<ul>
<li on-mousedown="{{mousedown}}">This is my child element</li>
</ul>
</template>
<script>
Polymer('my-foo', {
mousedown: function() {
console.log('mousedown event working');
}
});
</script>
</polymer-element>