删除keydown事件侦听器

时间:2017-11-17 14:47:43

标签: javascript

尝试删除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>

0 个答案:

没有答案