具有已定义函数的removeEventListener不起作用

时间:2016-10-14 18:52:19

标签: javascript javascript-events

我尝试删除具有已定义函数的事件侦听器,但我不知道为什么removeEventListener丢失了函数引用。

如果我设置" eventOnMouseOver"和" eventOnMouseOut"淘汰测试,然后工作正常。

没有"测试"相同的参考,然后他们的功能,每次都被称为?

有人能解释我为什么吗?



*.f90

function test(value) {

  var element = document.querySelector('h1');

  if (value) {
    console.log('Enabling listeners');
    element.addEventListener('mouseover', eventOnMouseOver);
    element.addEventListener('mouseout', eventOnMouseOut);

  } else {
    console.log('trying to remove listeners...');
    element.removeEventListener('mouseover', eventOnMouseOver);
    element.removeEventListener('mouseout', eventOnMouseOut);
  }

  function eventOnMouseOver(e) {
    e.stopPropagation();
    this.classList.add('selected');
  }

  function eventOnMouseOut() {
    this.classList.remove('selected');
  }
}

.selected {
  border: 10px solid red;
}




0 个答案:

没有答案