event.stopPropagation()メソッド

event.stopPropagation()は、現在のイベントで、イベントバブルを止めるメソッド。

イベントバブルとは、子要素のイベントが発生すると、その親要素や先祖要素の同じタイプのイベントが発生すること。

構文

event.stopPropagation()

サンプル

sample1:

sample2:

sample3:

サンプルの動作について

  • idが「sample1」であるDIV要素をクリックすると、「sample1:」の右横に「クリックしましたね♪」と表示する。
  • idが「sample2」であるDIV要素をクリックすると、「sample2:」の右横に「クリックしましたね♪」と表示する。「sample1:」の右横には表示しない点に注目。
  • idが「sample3」であるDIV要素をクリックすると、「sample2:」と「sample3:」の右横に「クリックしましたね♪」と表示する。「sample1:」の右横には表示しない点に注目。
  • 「リセット」ボタンをクリックすると、表示したテキストを消し、元の状態に戻す。

サンプルのソースコード

JavaScript

<script type="text/javascript">
window.onload = function () {
    document.getElementById( "sample1" ).onclick = function( $event ){
        document.getElementById( "sample1output" ).innerHTML = "クリックしましたね♪";
    };
    document.getElementById( "sample2" ).onclick = function( $event ){
        document.getElementById( "sample2output" ).innerHTML = "クリックしましたね♪";
        $event.stopPropagation();
    };
    document.getElementById( "sample3" ).onclick = function( $event ){
        document.getElementById( "sample3output" ).innerHTML = "クリックしましたね♪";
    };
    document.getElementById( "sampleReset" ).onclick = function(){
        document.getElementById( "sample1output" ).innerHTML = "";
        document.getElementById( "sample2output" ).innerHTML = "";
        document.getElementById( "sample3output" ).innerHTML = "";
    };
}
</script>

idが「sample2」であるDIV要素のクリックイベントに、event.stopPropagation()を設定してある点に注目。

HTML

<p><button id="sampleReset">リセット</button></p>
<div id="sample1">
    <p>sample1:<span id="sample1output"></span></p>
    <div id="sample2">
        <p>sample2:<span id="sample2output"></span></p>
        <div id="sample3">
            <p>sample3:<span id="sample3output"></span></p>
        </div>
    </div>
</div>

CSS

<style>
#sample1,
#sample2,
#sample3 {
    padding: 10px;
    background-color: #f0f0f0;
    border: 1px solid gray;
    border-radius: 10px;
    cursor: pointer;
}
</style>

スポンサード リンク

カテゴリー: DOM, Eventオブジェクト, JavaScript, イベント, メソッド, リファレンス パーマリンク