#Javascript# 事件的传播机制

<div id="outer">
    <div id="inner"></div>
</div>
document.body.onclick = function(){
console.log('body');
}
outer.onclick = function(){
console.log('outer');
}

inner.onclick = function(){
console.log('inner');// inner  outer  body
}

事件传播有三个阶段(捕获--目标--冒泡)
Event.prototype
0: none 默认值,不表明任何的意思
1:capturing_phase:捕获阶段
2:at_target:目标阶段(当前事件源)
3:bubbling_phase:冒泡阶段html

三个阶段处理的事情
点击inner,触发了inner的click事件
浏览器在执行inner的click绑定的方法以前
1.从整个页面document开始向内查找,把inner的祖先元素遍历一遍(为冒泡阶段的传播途径作准备)
2.接下来找到目标阶段找到当前事件源。把事件源上绑定的方法执行(没绑定方法就不执行了)
3.不只触发了当前事件源的点击行为,并且浏览器会按照第一个阶段规划的传播路径,从内向外(inner -> outer->body->html->document)把祖先元素的click行为依次触发。浏览器

当前元素的某个事件行为被触发,它全部的祖先元素,相关的事件行为也会被依次触发,顺序是从内向外。若是祖先元素的这个行为绑定了方法,绑定的方法也会被触发执行,咱们把事件的这种传播机制叫作冒泡传播prototype

这个传播机制是全部浏览器的传播机制。code

相关文章
相关标签/搜索