我尝试删除具有已定义函数的事件侦听器,但我不知道为什么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;
}