addEventListenerについて

onclickは一つの要素に同じ種類のイベントは1つしか設定できない
そこで、addEventListenerを使うのだが、IE8以下では対応していない。
E8以下に対応するためにはattachEventを使うのだが、ブラウザによって処理を分ける必要がある。
今回は、addEventListenerで複数の処理が行える事と第3引数useCapture(false,true)について検証してみる。
例)対象の要素.addEventListener(何か起きたら,何かをする,false | true);

※trueの検証をするためHTMLは入れ子を作っておく。

<HTML>

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Script-Type" content="text/javascript" charset="utf-8" />
<title>イベント</title>
<script type="text/javascript" src="hellow.js" charset="utf-8"></script>
</head>
<body>
	<div id="parentsbox">
		<div id="box">ボックス
			<button id="btn">アラートの表示</button>
		</div>
	</div>
</body>
</html>

<JSファイル>

/*onclickは一つの要素に同じ種類のイベントは1つしか設定できない
//そこで、addEventListenerを使うのだが、IE8以下では対応していない。
/IE8以下に対応するためには、attachEventを使う必要があるが、ブラウザによって処理を分ける必要がある。
//例)対象の要素.addEventListener(何か起きたら,何かをする,false);
*/
window.onload = function(){
	//btn要素を取得
	var btn = document.getElementById('btn');
	var parentsbox = document.getElementById('parentsbox');
	var box = document.getElementById('box');

	btn.addEventListener('click', function(){
		box.style.backgroundColor ='red';
	},false);
	
	//⑤第三引数が同じ『false』だった場合子が優先される
	parentsbox.addEventListener('click', function(){
		//クリックされたらアラーとを出す
		alert('クリック1');
	},false);

	//④第三引数が同じ『false』だった場合子が優先される
	box.addEventListener('click', function(){
		//クリックされたらアラーとを出す
		alert('クリック2');
	},false);
	
	//③第三引数が同じ『false』だった場合子が優先される
	btn.addEventListener('click', function(){
		//クリックされたらアラーとを出す
		alert('クリック3');
	},false);	
	
	//②第三引数が同じ『true』と『false』だった場合、『true』が優先される
	box.addEventListener('click', function(){
		//クリックされたらアラーとを出す
		alert('クリック4');
	},true);

	//①第三引数が同じ『true』だった場合、親が優先される。
	parentsbox.addEventListener('click', function(){
		//クリックされたらアラーとを出す
		alert('クリック5');
	},true);
};

<結果>
・『true』と『false』では『true』が優先される
・同じ『true』だった場合、親が優先される
・同じ『false』だった場合、子が優先される