- 冒泡机制(event)
- 事件冒泡:当一个元素上的事件被触发的时候,比如手鼠标点击了一个按钮,同样的事件将会在那个元素的所有祖先元素中被触发(这个事件会从原始元素开始一直冒泡到DOM树的最上层)
- 什么是冒泡:子元素事件被触动,父盒子的同样的事件也会被触动
- 取消冒泡就是取消这种机制
- 阻止冒泡
- event.stopPropagation()
- event.cancelBubble = true
- 兼容代码
var event = event || window.event ;
if(event && event || window.event){
event.stopPropagation() ;
}else{
event.cancelBubble = true ;
}
- 事件传播阶段
- 捕获阶段(从上往下):事件从最上一级标签开始往下查找,直到捕获到事件目标(target)
- 冒泡阶段(从下往上):事件从事件目标开始,往上冒泡直到页面的最上一级标签
- 冒泡顺序
<1>IE6.0:div
à
body
à
html
à
document
<2>其他浏览器:div
à
body
à
html
à
document
à
window
- 不是所有的事件都能冒泡,以下事件不能冒泡:
blur、focus、load、unload、onmouseenter、onmouseleave
除上面以外的全部事件都会冒泡,也就是说如果不想冒泡就要我们去定义取消冒泡的机制
- 目标阶段