ホームページ > ウェブフロントエンド > jsチュートリアル > jsバブリングイベントを徹底分析_基礎知識

jsバブリングイベントを徹底分析_基礎知識

WBOY
リリース: 2016-05-16 16:29:01
オリジナル
1688 人が閲覧しました

JavaScript で DOM 操作を実行すると、必ず js バブリング イベントが発生します。最も一般的なのは、図に示すように div ポップアップ イベントです。

灰色の部分をクリックするとポップアップウィンドウが消えますが、黒い部分をクリックしても何も起こりません。

次のコードを使用して、JS バブリング イベントを分析します

HTML コード:

コードをコピーします コードは次のとおりです:



<頭>

js バブリングイベント
<リンク rel="スタイルシート" href="style.css">



                                                                                                                                                                                                                 

&lt; button class = "btn"&gt;
クリックしてください!

                                                                                       

<スクリプト>
var box=document.querySelector(".box"),
btn=document.querySelector(".btn");
box.onclick=関数(イベント){
alert("私は div");
}
btn.onclick=関数(イベント){
alert("私はボタンです");
}






Firefox ブラウザのデフォルトの開発者ツールの 3D ビューを使用すると、div レイヤーの順序を明確に確認できます

イラスト:

ボタンをクリックすると、「I am button」がポップアップし、次に「I am div」がポップアップします。これは、最初にボタン イベントがトリガーされ、次に次のレイヤー div クリック イベントがトリガーされるためです。

イベントのトリガーは先入れ先出しの原則に基づいています。

イラスト:

場合によっては、複数のイベントがトリガーされて競合が発生することを望まないため、イベントにはバブリングを防ぐ stopPropagation() メソッドがあります。 リンクなどの一般的に使用されるイベント メソッドもあります。リンクをクリックしたときにジャンプしたくない場合は、event.preventDefault() メソッドを使用します。

サンプルコードは次のとおりです

コードをコピー

コードは次のとおりです:



<頭>
   
    js冒険泡イベント
    <リンク rel="スタイルシート" href="style.css">


   

    <スクリプト>
    var box=document.querySelector(".box"),
    btn=document.querySelector(".btn");
    box.onclick=関数(イベント){
        alert("我是div");
    }
    btn.onclick=関数(イベント){
        alert("我是ボタン");
        イベント.stopPropagation();
    }
    document.getElementById('link').onclick=function(event){
        alert("我是リンク");
        イベント.preventDefault();
    }
    /*区別event.stopPropagation();和event.preventDefault();
      前者はstopPropagation() を使用してイベント冒泡を阻止します
      後者は、超接続を阻止するなどの行為です
    */
   


小さな伙伴们がjsの冒険泡事件を完全に理解できるかどうか、疑いのある问就给我留言吧

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート