尝试删除keydown
事件侦听器。它说我需要使用命名函数。 doStuff()
不是命名函数吗?为什么不起作用?如果有人输入keydown
密钥,我不会删除E
事件。所以在E
之后,控制台不再需要长时间了。我做错了什么?
(function(){
'use strict'
class Blubb {
constructor() {
this.init();
}
init() {
document.addEventListener('keydown', (function(event) {
this.doStuff(event);
}).bind(this));
}
doStuff(event) {
if(event.keyCode === 69) {
console.log('remove event listener', event.keyCode);
document.removeEventListener('keydown', (function(event) {
this.doStuff(event);
}).bind(this));
} else {
console.log('blubb', event.keyCode);
}
}
};
new Blubb();
})();
<h3>Press key on keyboard</h3>
<h3>Press "E" to remove Event Listener</h3>