给元素添加事件监听时使用 obj.addEventListener("click",函数名)
移除元素事件监听时使用 obj.removeEventListener("click",函数名)
如果使用的是匿名函数该怎么移除呢? obj.addEventListener("click",function(){})
js代码:
<div class="box" style="width: 100px;height: 100px;background-color: aqua;"></div>
<script>
var box = document.querySelector(".box")
var n = 0;
box.addEventListener("click", function () {
n++;
alert("n = "+n+",最多为5;");
if (n >= 5) {
box.removeEventListener("click", arguments.callee);
}
});
</script>
解决方法:将移除事件写在添加事件当中,满足触发条件之后移除事件。arguments.callee可以指向正在运行的函数而且不需要函数名,所以可以指向匿名函数,并将匿名函数移除,达到移除事件监听的效果。