Polymer中的事件委派

时间:2014-07-23 07:36:42

标签: javascript polymer event-delegation

有没有办法将外部正文元素的事件委托添加到阴影元素中?

例如,我希望每当有人点击anchor class="special"时都会触发特殊功能。

通常(在jquery中):

$('body').on('click', 'a.special', myFunction);

然而,这似乎不可能使用影子DOM,至少我尝试过的一切。我是否真的需要将这些处理程序添加到a.special的每个实例中,因为它们出现在某个模板中?

1 个答案:

答案 0 :(得分:1)

在您的示例中,您仍然可以将事件委派与自定义元素一起使用:

$('body').on('click', 'my-element', myFunction);

不同之处在于,事件看起来像是来自my-element而不是元素阴影dom中的a.special。那是因为event model重新定位以隐藏影子dom的实现细节。

您还可以在元素中设置侦听器,以便在单击a.special时触发事件:http://www.polymer-project.org/articles/communication.html#utilizing-event-delegation

对于更复杂的内容,请查看Polymer网站上的Communication & Message Passing。特别是,<core-signals>可以用于类似pubsub的模式。