目前正在使用OLOO风格的方法在一个小项目上工作。 Problem found here删除事件侦听器在一个对象字面值丢失此引用
所以我面临的问题是我有一个事件处理程序。
eventHandler: function() { console.log('Hit'); testSelector.removeEventListener('click', this.eventHandler, false); }
现在发生的事情是,我想这是第一次点击之后被去除。但是,这似乎并没有像我期望的那样工作。我将这个引用的对象绑定在一起,但似乎有什么东西我在这里实际发生的事情中缺少。任何人都可以澄清实际发生的事情或我出错的地方吗?
太棒了。正是我在寻找的答案。 稍微编辑您的答案以将this.ref绑定到实际属性。同时也删除了self = this,因为绑定会为你处理。 https://jsbin.com/kufepeyitu/2/edit?js,console,output – factordog
如果你必须去testSelector.addEventListener('click',this),你是否看到任何必须将其分配给另一个属性的原因.eventHandler.bind(this),false); ?作为调试,它没有记录它引用节点,但外部对象,这是让我困惑。 – factordog
使用绑定你有它指向'对象',但除非你得到绑定函数的引用你失去它,然后你不能在'removeEventListener'中引用它;希望它是有道理的。 – maioman