我正在尝试使用箭头功能添加和删除事件侦听器。我可以添加但不能删除它们。我已经阅读了文档,并且似乎没有使用箭头功能的任何示例。箭头功能不能与removeEventListener一起使用是有原因的吗?如果尚不存在仅添加事件侦听器的方法,有没有办法?最终,这就是我想要做的。
let bluebox = document.querySelector('.bluebox');
let redbox = document.querySelector('.redbox');
const clickMe = ()=>{
alert("click added");
};
bluebox.addEventListener('click', ()=>clickMe());
bluebox.removeEventListener('click',()=>clickMe());
.boxes{
width:calc(25% - 4px);
height:50vh;
margin:2px;
}
.redbox {
width: 100%;
height: 100%;
background-color: red;
}
.bluebox {
width: 100%;
height: 100%;
background-color: blue;
}
<div class="boxes">
<div class="bluebox"></div>
<div class="redbox"></div>
</div>
答案 0 :(得分:3)
您正在通过使用箭头函数()=> clickMe()创建新的回调。 removeEventListener无法确定要删除的cb。您可以使用相同的参考文献进行修复
bluebox.addEventListener('click', clickMe);
bluebox.removeEventListener('click',clickMe);