ホームページ  >  記事  >  ウェブフロントエンド  >  イベントバブリング率のコード解析

イベントバブリング率のコード解析

不言
不言オリジナル
2018-07-14 16:06:572226ブラウズ

この記事では、バブルと比較してイベントのバブリングのコード分析を主に紹介します。必要な友達はそれを参照できます。

子要素がイベントをトリガーするという概念です。対応する先祖要素も同じイベントをトリガーします

(同じイベントが前提条件の親要素にも追加されます)

例: 息子には onclick があり、先祖の 18 世代にも onclick があります

息子がクリックされたとき、祖先 18 世代のクリック イベントもトリガーされます

この状況は多くの問題を引き起こす場合があるため、バブリングを防ぐ必要があります

クリックされた要素のみがイベントをトリガーします

すべてのイベントがバブルするわけではありません

Onblur onfocus onload onerror なし

実際、イベントをトリガーするには 3 つのプロセスがあります: キャプチャ フェーズ ---> バブリング フェーズ

標準ブラウザのバブル順序の子要素 ​​-->親 --> 本体 --> ドキュメント ---> ウィンドウ

IE 子要素 --> 親 --> 本体 --> ドキュメント

次に、コードは非常に簡単です。互換性プロセス

<!doctype html>
<html>
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>阻止冒泡</title>
 </head>
 <body>
     <input type="button"  id="cancelBubble" value="取消冒泡"/>
    <script type="text/javascript">
          var btn=document.getElementById("cancelBubble");
          document.onclick=function(){
            alert("冒泡");
          }
          btn.onclick=function(event){
          var event=event||window.event;//兼容
          if(event && event.stopPropagation){
               
               event.stopPropagation();
          
          }
          else{
              //IE 678
             event.cancelBubble=true;
          }
           alert("没有冒泡");
          
          }
    </script>
 </body>
</html>

以上がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトに注目してください。

関連する推奨事項:

NodeJS によるメッセージ キュー RabbitMQ の操作方法の分析

JavaScript によるファイル ダウンロード機能の実装方法

以上がイベントバブリング率のコード解析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。