RemoveEventListener使用typescript在Angular2中不起作用

时间:2017-01-13 01:24:52

标签: javascript angular typescript

我在Angular2中使用了three.js.代码很简单,如下所示。

this.webGLRenderer.domElement.addEventListener('mousedown', ()=>this.onMouseDown(<MouseEvent>event), false);

this.webGLRenderer.domElement.removeEventListener('mousedown', ()=>this.onMouseDown(<MouseEvent>event), false);

我也试过这个

this.webGLRenderer.domElement.removeEventListener('mousedown', this.onMouseDown, false);

无论如何,我仍然在圆顶上举办了这个活动。看起来,addEventListener工作正常,但无法将其删除。提前致谢。

1 个答案:

答案 0 :(得分:0)

使用removeEventListerner,函数回调不能是匿名的,所以你的第二个例子应该可行,只要你在添加监听器时也使用this.onMouseDown。

  

要删除事件处理程序,请使用指定的函数   addEventListener()方法必须是外部函数。

来自HERE

尝试:

this.webGLRenderer.domElement.addEventListener('mousedown', this.onMouseDown, false);
this.webGLRenderer.domElement.removeEventListener('mousedown', this.onMouseDown, false);