重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

addEventListenerメソッドについてgoogleで検索してみていろいろと読んでみましたがいまいち理解できません。

ブラウザ上でのイベントとjavascriptの関数を結びつけるのが役割かなとはなんとなく分かりましたが、このメソッドの第3引数のtrue,falseが、キャプチャのオンかオフらしいのですが、キャプチャなるものが理解できません。
教えて下さい。よろしくお願いします。

A 回答 (2件)

useCaptureが真のリスナー → イベントの対象 → useCaptureが偽のリスナー の順序でイベントが伝播されます。


下の例で、適当にキーを押して試してみるとわかるかと思います。

<html><head><title>Test</title>
<script type="text/javascript">
function KeyPressC(e) {
document.getElementById('log').value += "Capture\n";
if (document.getElementById('cancel').checked) e.cancelBubble = true;
}
function KeyPressC2(e) { document.getElementById('log').value += "Capture(2)\n"; }
function KeyPress() { document.getElementById('log').value += "InputText\n"; }
function KeyPressNC(e) { document.getElementById('log').value += "NoCapture\n"; }
function KeyPressNC2(e) { document.getElementById('log').value += "NoCapture(2)\n"; }
document.addEventListener('keypress', KeyPressNC, false);
document.addEventListener('keypress', KeyPressC, true);
document.addEventListener('keypress', KeyPressNC2, false);
document.addEventListener('keypress', KeyPressC2, true);
</script></head><body>
<form method="get" action="">
<input type="text" onkeypress="KeyPress()">
<input type="button" value="クリア" onclick="document.getElementById('log').value=''"><br>
<textarea id="log" rows="10" cols="70" readonly></textarea><br>
<input type="checkbox" id="cancel">cancelBubble
</form></body></html>
    • good
    • 0
この回答へのお礼

なるほど、理解できました。わざわざサンプルスクリプトまで提示していただき感謝の極みです。ありがとうございます!
すみません。失礼でなければもうひとつ聞かせてください!
このaddEventListenerメソッドですが一体どういう場面で使うのでしょうか?

お礼日時:2005/02/13 16:46

> このaddEventListenerメソッドですが一体どういう場面で使うのでしょうか?



スクリプトとマークアップ(HTML)を分離するために使うのが本来の用途だと思います。(W3Cあたりの仕様書を読めば書いてあるかもしれません)
各ブラウザの対応状況からなかなか思うようにいかない感じですが。
    • good
    • 0
この回答へのお礼

何度もありがとうございます!

お礼日時:2005/02/16 16:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!