我有以下代码
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()?
答案 0 :(得分:2)
this.listen
等价 this.listen()
有效地调用addEventListener()
,因此等效于:
this.listen(span, 'tap', '_removeIt');
是:
span.addEventListener('tap', e => this._removeIt(e));
click
代替tap
在聚合物1中,建议使用tap
以获得跨平台一致性来处理点击/抽头。但是,鉴于现代移动浏览器的发展,在聚合物2 tap
is no longer recommended as the default中。您应该使用click
而不是tap
。
Polymer.dom(span)
如果span是使用Polymer.dom(span)
创建的元素,则无需调用document.createElement()
。