polymer - 如何在 Polymer 2.0 中的 span 元素上设置监听器?

标签 polymer polymer-2.x

我有以下代码

var span = document.createElement('span');
Polymer.dom(span).setAttribute('class','right-icon dfw-remove-icon dfw-24');
this.listen(span, 'tap', '_removeIt');
return span;

这段代码来自一个使用 Polymer 1 的旧项目,但我正在尝试使用 Polymer 2 制作一个应用程序。第三行在 Chrome 上对我不起作用,它给了我一个错误,说 this.listen不是一个函数。如何在 span 元素上设置监听器,以便在单击时触发 _removeIt()?

最佳答案

this.listen 等价

this.listen() 有效地调用 addEventListener(),因此相当于:

this.listen(span, 'tap', '_removeIt');

是:

span.addEventListener('tap', e => this._removeIt(e));

使用点击而不是点击

在 Polymer 1 中,建议使用 tap 以实现处理点击/点击时的跨平台一致性。然而,在 polymer 2 中,tap is no longer recommended as the default ,考虑到现代移动浏览器的进步。您应该使用点击而不是点击

不要做Polymer.dom(span)

如果 span 是使用 document.createElement() 创建的元素,则无需调用 Polymer.dom(span)

关于polymer - 如何在 Polymer 2.0 中的 span 元素上设置监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52266113/

相关文章:

javascript - 将 polymer 铁形式数据发送到 firebase

javascript - 是否可以创建任何人无需安装即可使用的 Web 组件?

polymer-2.x - Polymer 2. 在iron-ajax响应后更改其他html页面(iron页面)上的值

javascript - 使用 Polymer.dom(this.root).querySelector 无法在 Polymer 元素中找到复选框元素

javascript - 引用错误 : KeyframeEffect is not defined in paper component

css - 如何在 Polymer 中访问孙元素的 css mixin?

eclipse - Polymer意外路由结果首页

javascript - 相当于 ng 重复的 polymer

unit-testing - 如何在 Polymer 中测试服务?

vue.js - 是否可以将数据从 Polymer 组件传递到 Vue 组件?