记得刚学js的时候,对于事件冒泡和事件捕获总是一知半解,不知道能干嘛,有啥意义,就知道冒泡就是从你子节点一级一级向上触发。。。然而并不知道起本质和机制,应用等!今天小飞飞就带小伙伴们从新认识下这些究竟什么东西!
了解这些之前你必须知道这几个东西,什么event事件对象?,什么是事件流?
1.事件流:就是事件执行顺序.分为冒泡和捕获
冒泡:假如有一个div中包含一个p标签,我们同时给div和p标签添加click事件,如果我们点击p标签,首先会执行p标签绑定click事件,然后就会执行div标签绑定的click事件(因为p标签在div中,点击p就相当于你也点击了div),这种执行顺序就叫冒泡(逐个向上触发)
捕获:和上面相反的事件执行顺序
//html
<div style="width:800px;">
<p style="width:200px;">产品经理是sb</p>
</div>
//js(为了方便我直接用jquery获取dom)
$("div").click({
alert("parent is clicked")
})
$("p").click({
alert("child is clicked")
})
点击p标签后依次弹出:
child is clicked
parent is clicked
//这就是事件冒泡。这种绑定click事件事件流都是冒泡事件
a.onclick=function(){ doanything}