如何添加和删除箭头功能的事件监听器

时间:2020-10-31 21:07:06

标签: javascript html ecmascript-6

我正在尝试使用箭头功能添加和删除事件侦听器。我可以添加但不能删除它们。我已经阅读了文档,并且似乎没有使用箭头功能的任何示例。箭头功能不能与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>

1 个答案:

答案 0 :(得分:3)

您正在通过使用箭头函数()=> clickMe()创建新的回调。 removeEventListener无法确定要删除的cb。您可以使用相同的参考文献进行修复

bluebox.addEventListener('click', clickMe);
bluebox.removeEventListener('click',clickMe);