DOM 事件模型以及DOM 事件机制

435 阅读1分钟

事件捕获

在元素中从外向内找监听函数叫做事件捕获

事件冒泡

在元素中从内向外找监听函数叫做事件冒泡

在元素绑定事件时如果在事件绑定最后传入true就走事件捕获,即浏览器在捕获阶段发现div有监听函数就会调用 div.addEventListener('click',fn,true)

在元素绑定事件时如果在事件绑定不传或者最后传入false就走事件冒泡,即浏览器在冒泡阶段发现div有监听函数就会调用

div.addEventListener('click',fn)
div.addEventListener('click',fn,false)

但有一个特例 如果只有一个div被监听(不考虑父子同时被监听) fn分别在捕获和冒泡阶段监听click事件 用户点击的元素就是开发者监听的

div.addEventListener('click',fn)
div.addEventListener('click',fn,true)

这时就是一个特例,这里谁先监听谁 就限制性(冒泡先执行)

target 与 currentTarget 区别

e.target 用户操做的元素
e.currentTarget 程序员监听的元素

取消冒泡

捕获不能取消,冒泡能够e.stopPropagation中断冒泡