chdyiboke / weekly

issue and share weekly
5 stars 1 forks source link

事件捕获和冒泡 #14

Open liukexina opened 4 years ago

liukexina commented 4 years ago

事件冒泡:从里到外 事件捕获:从外到里

addEventListener的第三个参数来区分冒泡还是捕获,默认为false 代表冒泡,true代表捕获

liukexina commented 4 years ago

当捕获和冒泡一起存在的时候,触发规则:

先从document向被点击dom节点进行捕获,遇到注册的捕获事件触发执行 到达被点击的dom节点,根据事件的注册顺序来决定先捕获还是冒泡 最后从被点击dom节点到document进行冒泡,遇到注册的冒泡事件触发执行

liukexina commented 4 years ago

阻止事件冒泡:

e.stopPropagation() 阻止事件冒泡, ie浏览器:e.cancelBubble = true 事件处理函数返回false, 阻止事件冒泡的同时还阻止来事件本身

阻止默认事件: e.preventDefault(), ie浏览器:e.returnValue = false return false