可能重复:
什么是事件冒泡和捕获
我刚刚了解到在 JS 中我们有两种事件类型:Capture 和 Bubble。气泡可用于避免需要附加eventListener
到所有孩子身上;而是仅将侦听器附加到父级并让它检查目标。听起来很酷。我尝试了这个例子:
<div id="parent-list">
<span>span1</span>
<span class='target'>span2</span>
<span>span3</span>
<span>span4</span>
</div>
<script type="text/javascript">
document.getElementById('parent-list').addEventListener('click',function(e){
if( e.target && e.target.nodeName=='SPAN' ){
var classes = e.target.className.split(' ');
for(var i=0; i<classes.length; ++i){
if( classes[i]=='target' ){
alert('Bingo! you hit the target.');
}
}
}
});
</script>
但是我没有将任何听众附加到子跨度。然而,他们身上的事件正在冒泡!那么在JS中冒泡默认事件顺序?那么在哪种情况下会使用捕获(自上而下)?