七、移除事件


title: 七、移除事件

abbrlink: 9af7d3f8
date: 2020-05-08 21:26:32
copyright: true # 开启版权声明


七、移除事件

其实现在大部分浏览器都支持:

一旦给一个元素添加了id,相当于给window添加了一个属性

一般在测试的时候可以使用

但是在开发的时候还要通过getElementById来获取元素

7.1 dom2级移除事件方式

使用方式:

  • dom.removeEventListener(type,fn,Boolean)

    • type:事件类型

    • fn:执行函数

    • boolean:该参数决定要移除捕获还是冒泡阶段

错误的移除方式:

1
2
3
4
5
6
7
8
9
10
11
// 添加dom2级事件
box.addEventListener("click",function(){
console.log("函数执行了");
});

// 点击btn,移除box上的事件
btn.onclick = function(){
box.removeEventListener("click",function(){
console.log("函数移除了");
});
}

正确的移除方式:

1
2
3
4
5
6
7
8
9
10
11
// 如果想要移除事件,必须要提取为有名函数,否则就算要移除的事件函数写的一样,但那还是在不同内存的不同函数
function click(){
console.log("函数执行了");
}
// 添加dom2级事件
box.addEventListener("click",click);

// 点击btn,移除box上的事件
btn.onclick = function(){
box.removeEventListener("click",click);
}

7.2 detachEvent

  • 作用:

    • 移除attachEvent事件
  • 使用方式:

    • 同removeEventListener一致,只是没有了第三个参数,因为attachEvent不支持捕获
1
2
3
4
5
6
7
8
9
10
function click(){
console.log("函数执行了");
}
// 添加dom2级事件
box.attachEvent("onclick",click);

// 点击btn,移除box上的事件
btn.onclick = function(){
box.detachEvent("onclick",click);
}
点击查看

本文标题:七、移除事件

文章作者:Mango

发布时间:2020年07月13日 - 22:22:34

最后更新:2020年07月14日 - 13:27:10

原始链接:https://mango185.github.io/post/37c2b7e4.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------------本文结束 感谢您的阅读-------------------