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

How to set a listener on a span element in Polymer 2.0?

我有以下代码

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));

使用click代替tap

在 Polymer 1 中,tap 被推荐用于处理 clicks/taps 的跨平台一致性。然而,在 Polymer 2 中,tap is no longer recommended as the default,考虑到现代移动浏览器的进步。您应该使用 click 而不是 tap.

不要Polymer.dom(span)

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