ネストされたものをクリックしたときにイベントハンドラーがトリガーされる順序を決定するものを理解しようとして<div>
います.
2 つのネストされた div があり、それぞれに 2 つのイベント ハンドラーがアタッチされています。1 つはキャプチャ フェーズ用、もう 1 つはバブリング フェーズ用です。
<html>
<head>
<script>
function setup(){
var outer = document.getElementById('outer');
outer.addEventListener('click', function(){console.log('outer false');}, false);
outer.addEventListener('click', function(){console.log('outer true');}, true);
var inner = document.getElementById('inner');
inner.addEventListener('click', function(){console.log('inner false');}, false);
inner.addEventListener('click', function(){console.log('inner true');}, true);
}
</script>
<style>
div {
border: 1px solid;
padding: 1em;
}
</style>
</head>
<body onload="setup()">
<div id="outer">
<div id="inner">
CLICK
</div>
</div>
</body>
</html>
私が読んだことによると、出力は次のようになります。
outer true
inner true
inner false
outer false
しかし、実際に (Chrome と Firefox で) 表示されるのは次のとおりです。
outer true
inner false
inner true
outer false
誰も矛盾を説明できますか?