相关疑难解决方法(0)

Javascript removeEventListener无法正常工作

我有以下代码来添加eventListener

 area.addEventListener('click',function(event) {
              app.addSpot(event.clientX,event.clientY);
              app.addFlag = 1;
          },true);
Run Code Online (Sandbox Code Playgroud)

它正如预期的那样正常工作.后来我尝试使用以下代码删除事件监听器

 area.removeEventListener('click',function(event) {
              app.addSpot(event.clientX,event.clientY);
              app.addFlag = 1;
          },true);
Run Code Online (Sandbox Code Playgroud)

但是偶数监听器没有被移除.为什么会发生这种情况?我的removeEventListener()有什么问题吗?注意:这里的区域类似于document.getElementById('myId')

javascript events addeventlistener

59
推荐指数
6
解决办法
6万
查看次数

javascript removeEventListener不在类中工作

我一直在玩es6类,并尝试设置一个简单的鼠标类.

addEventListener工作,但由于某种原因,我无法删除它们removeEventListener.我猜这与上下文绑定有关,但我无法弄清楚如何解决这个问题.

'use strict'
class Mouser {
    constructor() {
        this.counter = 0
        this.clicked = function (event) {
            this.counter++
            console.log('clicks:', this.counter)
            if (this.counter >= 10) this.remove()
        }
        window.addEventListener('click', this.clicked.bind(this))
    }

    remove() {
        console.log('Removing click listener') // this line runs ..
        window.removeEventListener('click', this.clicked.bind(this))
    }
}

var mouse = new Mouser()
Run Code Online (Sandbox Code Playgroud)

javascript class javascript-events

21
推荐指数
1
解决办法
5474
查看次数