重複の可能性:
イベントのバブリングとキャプチャとは
JSには、キャプチャとバブルの2つのイベントタイプがあることを知りました。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のデフォルトのイベント順序をバブリングしていますか?では、どのシナリオでキャプチャ(トップダウン)が使用されますか?