一文彻底搞懂事件机制:冒泡、捕获、传播、委托 以及如何阻止冒泡与捕获
标准的事件流:当dom触发了事件后,会先通过事件传播捕获到事件源,然后事件源通过事件传播实现事件冒泡
事件捕获:鼠标点击或者触发了dom事件,浏览器会从根节点一级一级向内传播,直到找到触发事件源
事件冒泡:在捕获完成后,触发事件源由内到外一级一级向外传播,直到根节点
事件传播:无论是捕获还是冒泡,都是靠事件传播一层一层传递的,当在某一层禁止事件传播,那么之后的步骤就不再进行了
addEventListener(type,listener,useCapture)
简单分析:
type:事件类型
listener:事件监听处理函数
useCapture:设置事件查找方式
false,冒泡事件(默认值)
true, 捕获事件
设置为true后,是在捕获时进行的事件, 默认为false为在冒泡时进行的事件
点击inside
事件委托:当需要给多个平级dom添加相同事件,可以通过事件委托到父节点,通过给父节点添加事件来避免多次添加事件,随着前端框架的普及以及jquery的没落,用的也就比较少了
stopPropagation()
stopPropagation() 与 stopImmediatePropagation() 都实现了阻止事件传播,区别是stopPropagation() 对于该层的其他事件不会阻止,而stopImmediatePropagation()则会阻止
我们实际需要的场景
遇到的需求是项目预览,我们项目预览采用的是实际项目的代码,能够极大的减少开发量,但是在预览时有些操作是不需要的,就需要将某些click事件去掉,但是这些事件是写在实际项目中,是不能进行修改的,所以就想到了通过阻止事件捕获来取消click事件
我们采用的是通过事件委托的方案 给body添加的click事件,如果点击的元素是需要被禁止的元素,那么在事件捕获的过程就禁止掉
document.querySelector('body')?.addEventListener( 'click', function(event) { //todo }, true ); 1234567
相关知识
angluar 适配 移动端
叶面施肥怎么施?一文彻底搞懂叶面施肥原理和施肥时机
提升网站性能与内存管理:打造高效的前端体验
空气设备是如何捕获尘埃微粒的?
碳捕获、利用与封存(CCUS)技术发展现状及应用展望
深入理解Vue模板语法与实战
九种动物堪称“碳捕获”高手
双碳科普 | 计算:一棵树能捕获多少二氧化碳?
化工巨头加速能源消费低碳化转型 氢能碳捕获技术前景广阔
养蟹爪兰,记住这“3点”,花朵开得红红火火,美得冒泡
网址: 一文彻底搞懂事件机制:冒泡、捕获、传播、委托 以及如何阻止冒泡与捕获 https://www.huajiangbk.com/newsview1841163.html
上一篇: 创新者说 | 虚幻绿洲:让数字人 |
下一篇: 《燕云十六声》悬赏通缉机制详解 |
推荐分享

- 1君子兰什么品种最名贵 十大名 4012
- 2世界上最名贵的10种兰花图片 3364
- 3花圈挽联怎么写? 3286
- 4迷信说家里不能放假花 家里摆 1878
- 5香山红叶什么时候红 1493
- 6花的意思,花的解释,花的拼音 1210
- 7教师节送什么花最合适 1167
- 8勿忘我花图片 1103
- 9橄榄枝的象征意义 1093
- 10洛阳的市花 1039