博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript系列之事件冒泡机制简介
阅读量:2040 次
发布时间:2019-04-28

本文共 682 字,大约阅读时间需要 2 分钟。

JavaScript系列之事件冒泡机制

DOM事件流(event flow )存在三个阶段:事件捕获阶段、处于目标阶段、事件冒泡阶段,事件冒泡顺序是由内到外进行事件传播,事件冒泡是由IE开发团队提出来的,即事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播。

听了简介介绍之后,您可能不理解,所以举个例子:

js事件冒泡测试
  • test

点击test页签,会依次执行li的onclick、ul的onclick、div的onclick,content的onclick,从内到外执行,所以这个就是冒泡事件的简单例子

最近也遇到了这种情况,所以就去网上搜索资料,简单学习一下,就是点击一个按钮的时候,竟然触发了两次,通过排查,发现了冒泡机制导致的,解决方法是禁用事件冒泡机制

w3c的方法是e.stopPropagation(),IE则是使用e.cancelBubble = true

$(element).click(function(e){
e.stopPropagation();//ie e.cancelBubble = true});

当然除了冒泡机制会导致onclick被调用两次外,事件被绑定2次的情况也有可能,解决方法是解除事件,然后再绑定

$(element).unbind('click').click(function() {
// todo })

参考资料:

JavaScript 详说事件机制之冒泡、捕获、传播、委托:

转载地址:http://ildof.baihongyu.com/

你可能感兴趣的文章
删除vi编辑产生的.swp文件
查看>>
laypage同一页面加入多处分页实现
查看>>
数据库连接池C3P0最常用配置
查看>>
线上遇到插入重复数据(重复提交)
查看>>
tomcat连接超时
查看>>
Tomcat调优总结
查看>>
shell一个实例$(($a+1))
查看>>
excel poi 设置列宽度
查看>>
jquery ajax缓存问题解决方法小结
查看>>
spring 默认事务传播属性
查看>>
mysql 嵌套查询
查看>>
svn Cleanup failed to process the following paths错误的解决
查看>>
全国各个城市代码
查看>>
Netty 源码分析之 三 我就是大名鼎鼎的 EventLoop(一)
查看>>
centos 卸载软件
查看>>
Linux下MySQL备份以及crontab定时备份(crontab表达式简介)
查看>>
powerdesigner: used normalization rules prevent from reusing this data item in a primary
查看>>
PowerDesigner最基础的使用方法入门学习
查看>>
eclipse maven 查找重复依赖
查看>>
MySQL数据表生成ER图 workbench使用
查看>>