事件捕获
在元素中从外向内找监听函数叫做事件捕获
事件冒泡
在元素中从内向外找监听函数叫做事件冒泡
在元素绑定事件时如果在事件绑定最后传入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中断冒泡