JSバブリングイベントの使い方

php中世界最好的语言
リリース: 2017-12-04 14:43:44
オリジナル
2225 人が閲覧しました

今回は、バブリングイベントの概要とその使用方法について詳しく説明します。サンプルデモをご覧ください。

バブルイベント

(1) バブルは、子孫要素のイベントがトリガーされると、その祖先要素の同じイベントもトリガーされることを意味します。

<!DOCTYPE html>  
<html>  
    <head>  
        <meta charset="UTF-8">  
        <title></title>  
        <style type="text/css">  
            #box1{  
                width: 300px;  
                height: 300px;  
                background-color: #00BFFF;  
            }  
            #s1{  
                background-color: yellow;  
            }  
        </style>  
           
        <script type="text/javascript">  
        window.onload=function(){  
        var box1=document.getElementById("box1");  
        var s1=document.getElementById("s1");  
        var body=document.body;  
        //冒泡就是后代元素的事件被触发的时候,其祖先元素的相同事件也会被触发;冒泡是向上导向的  
        //如果我们不需要冒泡,可以通过事件对象来取消冒泡;  
        box1.onclick=function(){    
            alert("box1");  
        }  
        s1.onclick=function(event){  
            //  
            event.cancelBubble=true;//可以通过cancelBubble  
            alert("s1");  
        }  
        body.onclick=function(){    
            alert("body");  
        }  
        };   
        </script>  
    </head>  
    <body>  
        <p id="box1">  
            我是p  
            <span id="s1">我是span</span>  
        </p>  
    </body>  
</html>
ログイン後にコピー

//バブルの練習;イベントの委任

イベントの委任: バブリングを通じて複数の応答イベントを作成する問題を解決するには、同じイベントの祖先要素をバインドし、子孫要素をイベントにバインドします。イベント イベント オブジェクトの target 属性は、トリガー イベント オブジェクトを表すために使用されます。

<!DOCTYPE html>  
<html>  
    <head>  
        <meta charset="UTF-8">  
        <title></title>  
        <style type="text/css">  
            .box1{  
                width: 400px;  
                height: 200px;  
                background-color: aquamarine;  
            }  
        </style>  
        <script type="text/javascript">  
            window.onload=function(){  
                //获取超链接  
                var ul=document.getElementById("s1");  
                var lias=document.getElementsByTagName("a");  
                var bnt01=document.getElementById("btn01");  
                //为a绑定一个事件  
//              for(var i=0;i<lias.length;i++)  
//              {  
//                  lias[i].onclick=function(){  
//                      alert("超链接");  
//                  };   
//              }  
                bnt01.onclick=function(){  
                    //创建超链接;  
                    var li=document.createElement("li");  
                    li.innerHTML="<a href=&#39;#&#39; class=&#39;sn&#39;>新建超链接</a>";  
                    ul.appendChild(li);  
                }  
                ul.onclick=function(event){   
                    //只有点击超链接的时候才执行,其他的地方不执行;  
                    if(event.target.className=="sn")  
                       alert("超链接");  
                }         
    };  
        </script>  
    </head>  
    <body>  
        <button id="btn01">创建一个超链接</button>  
        <p class="box1">  
            <ul id="s1" style="background-color:red ;">  
                <li><a href="#" class="sn">超链接一</a></li>  
                <li><a href="#" class="sn">超链接二</a></li>  
                <li><a href="#" class="sn">超链接三</a></li>  
            </ul>  
        </p>  
    </body>  
</html>
ログイン後にコピー

これらの事例を読んだ後は、このメソッドを習得したと思います。さらに興味深い情報については、PHP の他の関連記事に注目してください。中国語のサイトです!


関連書籍:

実行中の JS エンジンはどのようになりますか?

AJAX で非同期同期リクエストを実装する方法

js コードのケース - 日付に基づいて曜日を計算する

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

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