事件发生时会在元素节点之间按照特定的顺序传播,这个传播过程即DOM事件流。
创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于网站设计、成都网站建设、清河门网络推广、微信小程序开发、清河门网络营销、清河门企业策划、清河门品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;创新互联建站为所有大学生创业者提供清河门建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.comDOM事件流分为三个阶段,分别为:
捕获阶段:事件从Document节点自上而下向目标节点传播的阶段;
目标阶段:真正的目标节点正在处理事件的阶段;
冒泡阶段:事件从目标节点自上而下向Document节点传播的阶段。
捕获阶段:
Document son盒子
控制台输出结果为:
可以看出捕获阶段 事件是从Document节点自上而下向目标节点传播的。
冒泡阶段:
控制台输出结果为:
可以看出冒泡阶段 事件是从目标节点自上而下向Document节点传播的。
注意:
1、JS代码只能执行捕获或者冒泡其中一个阶段(要么是捕获要么是冒泡)
2、onclick和attachEvent(ie)只能得到冒泡阶段
3、addEventListener(type, listener[, useCapture]) 第三个参数如果是true,表示在事件捕获阶段调用事件处理程序;如果是false(不写默认是false),表示在事件冒泡阶段调用事件处理程序
4、实际开发中,我们很少使用事件捕获,我们更关注事件冒泡
5、有些事件是没有冒泡的,比如onblur、onfocus、onmouseenter、onmouseleave
6、事件的冒泡有时会带来麻烦,不过是可以被阻止的,方法是:stopPropagation()
stopPropagation() 方法:终止事件在传播过程的捕获、目标处理或冒泡阶段进一步传播。调用该方法后,该节点上处理该事件的处理程序将被调用,事件不再被分派到其他节点。
以上就是详解DOM事件流的三个阶段的详细内容,更多请关注创新互联网站制作公司其它相关文章!