JS监听事件的叠加和移除功能


Posted in Javascript onNovember 19, 2018

html DOM元素有很多on开头的监听事件,如onload、onclick等,见DOM事件列表。但是同一种事件,后面注册的会覆盖前面的:

window.onresize = function(){
  alert(1);
}
window.onresize = function(){
  alert(2);
}
// 改变窗口大小时,只会弹出2

addEventListener监听

利用addEventListener添加监听事件,可以重复添加,并不会互相覆盖:

window.addEventListener("resize",function(){
  alert(1)
})
window.addEventListener("resize",function(){
  alert(2)
})
// 改变窗口大小时,先后弹出1和2

注意这里面的事件是不带"on"前缀的。

removeEventListener移除监听

removeEventListener跟addEventListener相对应,用于移除事件监听。

如果要移除事件句柄,addEventListener() 的执行函数必须使用外部具名函数,匿名函数事件是无法移除的。

// 匿名函数事件无法移除
window.addEventListener("resize",function(){
  alert(1)
})
// 监听具名函数事件
function myResize(){
  alert(2)
}
window.addEventListener("resize",myResize)
// 移除事件监听
window.removeEventListener("resize",myResize)

总结

以上所述是小编给大家介绍的JS监听事件的叠加和移除,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
关于Mozilla浏览器不支持innerText的解决办法
Jan 01 Javascript
基于jQuery实现表格数据的动态添加与统计的代码
Jan 31 Javascript
JS高级调试技巧:捕获和分析 JavaScript Error详解
Mar 16 Javascript
jquery判断小数点两位和自动删除小数两位后的数字
Mar 19 Javascript
详谈JavaScript内存泄漏
Nov 14 Javascript
javascript实现相同事件名称,不同命名空间的调用方法
Jun 26 Javascript
JS实现从顶部下拉显示的带动画QQ客服特效代码
Oct 24 Javascript
Angularjs之ngModel中的值验证绑定方法
Sep 13 Javascript
vue单页缓存存在的问题及解决方案(小结)
Sep 25 Javascript
详解angularjs跨页面传参遇到的一些问题
Nov 01 Javascript
JavaScript事件委托实现原理及优点进行
Aug 29 Javascript
解决vue打包报错Unexpected token: punc的问题
Oct 24 Javascript
微信小程序自定义弹窗wcPop插件
Nov 19 #Javascript
Vue.js 使用v-cloak后仍显示变量的解决方法
Nov 19 #Javascript
Vue.js 中的 v-cloak 指令及使用详解
Nov 19 #Javascript
浅析Vue.js 中的条件渲染指令
Nov 19 #Javascript
Vue.js 中的 v-show 指令及用法详解
Nov 19 #Javascript
深入浅析Vue.js 中的 v-for 列表渲染指令
Nov 19 #Javascript
为什么说JavaScript预解释是一种毫无节操的机制详析
Nov 18 #Javascript
You might like
CI(CodeIgniter)框架介绍
2014/06/09 PHP
PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
2015/03/03 PHP
php实现解析xml并生成sql语句的方法
2018/02/03 PHP
Extjs学习笔记之二 初识Extjs之Form
2010/01/07 Javascript
js实现带圆角的多级下拉菜单效果
2015/08/28 Javascript
一个仿微博登陆邮箱提示框js开发案例
2016/07/28 Javascript
详解基于angular路由的requireJs按需加载js
2017/01/20 Javascript
js 单引号替换成双引号,双引号替换成单引号的实现方法
2017/02/16 Javascript
深入对Vue.js $watch方法的理解
2017/03/20 Javascript
JS检测是否可以访问公网服务器功能代码
2017/06/19 Javascript
使用vue-infinite-scroll实现无限滚动效果
2018/06/22 Javascript
vue 解决数组赋值无法渲染在页面的问题
2019/10/28 Javascript
vue实现简单图片上传
2020/06/30 Javascript
JavaScript编码小技巧分享
2020/09/17 Javascript
[02:05]2014DOTA2西雅图国际邀请赛 BBC第二天小组赛总结
2014/07/11 DOTA
python算法表示概念扫盲教程
2017/04/13 Python
浅析python递归函数和河内塔问题
2017/04/18 Python
Windows下anaconda安装第三方包的方法小结(tensorflow、gensim为例)
2018/04/05 Python
python pandas库的安装和创建
2019/01/10 Python
总结Python图形用户界面和游戏开发知识点
2019/05/22 Python
基于python解线性矩阵方程(numpy中的matrix类)
2019/10/21 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
2020/04/07 Python
Pytorch之扩充tensor的操作
2021/03/04 Python
AmazeUI折叠式卡片布局,整合内容列表、表格组件实现
2020/08/20 HTML / CSS
为中国消费者甄选天下优品:网易严选
2016/08/11 全球购物
Blue Nile中国官网:全球知名的钻石和珠宝网络零售商
2020/03/22 全球购物
这76道Java面试题及答案,祝你能成功通过面试
2016/04/16 面试题
在DELPHI中调用存储过程和使用内嵌SQL哪种方式更好
2016/11/22 面试题
电话销售经理岗位职责
2013/12/07 职场文书
大学生自荐书范文
2013/12/10 职场文书
天鹅的故事教学反思
2014/02/04 职场文书
《翻越远方的大山》教学反思
2014/04/13 职场文书
2015大学生暑期实习报告
2015/07/13 职场文书
2015小学师德工作总结
2015/07/21 职场文书
发言稿之优秀教师篇
2019/09/26 职场文书
Python Matplotlib绘制两个Y轴图像
2022/04/13 Python