我有以下代码
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/