博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Js事件处理模型/周期
阅读量:4665 次
发布时间:2019-06-09

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

 

  有3个阶段

1、  捕获阶段:由外向内,记录各级父元素上绑定的事件处理函数---只记录,不触发。

2、  目标触发:优先触发目标元素上的事件处理函数。

3、  冒泡:由内向外,按捕获的顺序的相反的方向,依次执行父元素上的事件处理函数。

 过程如下图所示:

如果希望阻止某些冒泡行为,如表单验证失败时,不允许提交,可以使用e.stopPropagation();取消冒泡: 

什么时候使用利用冒泡:

都知道,浏览器通过遍历方式查找事件处理函数执行。如果添加的事件监听越多,遍历越慢,网页响应速度越慢,因此

尽量少的添加事件监听.

如果多个平级子元素绑定相同事件时,可在父元素仅添加一个事件监听,所有子元素共用,并且使用e.target获取目标元素.

 

下面的代码是一个很经典的理解事件处理的例子:

这里,咱希望的是,点击那个div,那个就变黄,可是如果不加e.stopPropagation的话,在点击d3或d2时,都会冒泡执行其父元素的操作,

比如点击,最里面的d3,上面的d2,d1都会依次变黄.

            事件处理        

 

转载于:https://www.cnblogs.com/web-fusheng/p/6745057.html

你可能感兴趣的文章
JAVA操作Hbase基础例子
查看>>
js表达式和语句趣味题讲解与技术分享
查看>>
【VC++技术杂谈006】截取电脑桌面并将其保存为bmp图片
查看>>
Java多线程编程(五)定时器Timer
查看>>
如何正确使用const(常量),define(宏)
查看>>
Linux系统目录权限chmod误操作权限修复方法
查看>>
wp7中如和从app.xaml.cs中直接导航到程序的某个页面
查看>>
Eclipse Jee Neon打开时报错 code=13的问题
查看>>
pymysql
查看>>
restframework之序列化
查看>>
配置网卡
查看>>
使用Asp.net mvc + Linq + mvc_scaffold_gen_setup.exe 生成一个完整的家庭帐册大管家程序 之二...
查看>>
利用URL重写隐藏复杂的URL
查看>>
支持二次开发的Zigbee模块(SNAP技术)
查看>>
Confluence 6 生产环境备份策略
查看>>
springmvc.xml配置
查看>>
C primer plus 学习随笔(1)
查看>>
Java 哈希表运用-LeetCode 1 Two Sum
查看>>
【codeforces 548B】Mike and Fun
查看>>
【2017 Multi-University Training Contest - Team 4】Counting Divisors
查看>>