<address id="ttjl9"></address>

      <noframes id="ttjl9"><address id="ttjl9"><nobr id="ttjl9"></nobr></address>
      <form id="ttjl9"></form>
        <em id="ttjl9"><span id="ttjl9"></span></em>
        <address id="ttjl9"></address>

          <noframes id="ttjl9"><form id="ttjl9"></form>

          事件冒泡和冒泡的阻止

          2020-2-22    seo達人

          事件冒泡概念:當元素觸發了事件的時候,會依次向上觸發所有元素的相同事件。



          事件冒泡的行為演示

          <!DOCTYPE html>

          <html lang="en">

          <head>

              <meta charset="UTF-8">

              <meta name="viewport" content="width=device-width, initial-scale=1.0">

              <meta http-equiv="X-UA-Compatible" content="ie=edge">

              <title>Document</title>

              <style>

               #a{

                   background: pink;

                   width: 400px;

                   height: 400px;

               }

               #b{

                   background: green;

                   width: 300px;

                   height: 300px;

               }

               #c{

                   background: red;

                   width: 200px;

                   height: 200px;

               }

              </style>

          </head>

          <body>

              <div id="a">

                  我是a

                    <div id="b">

                          我是b

                       <div id="c">我是c</div>

                    </div>

              </div>

              <script>

               var a = document.querySelector('#a')

               var b = document.querySelector('#b')

               var c = document.querySelector('#c')



               a.onclick = fn1;

               b.onclick = fn2;

               c.onclick = fn3;



               function fn1(){

                   alert('a來了')

               }



               function fn2(){

                   alert('b來了')

               }

               

               function fn3(){

                   alert('c來了')

               }

              </script>

          </body>

          </html>



          上面這段代碼一共有三個事件,三個div都分別綁定了單擊事件。在頁面中當單擊c會連續彈出3個提示框。這就是事件冒泡引起的現象。事件冒 泡的過程是:c --> b --> a 。c冒泡到b冒泡到a。



          冒泡的阻止

          方法:

          1.event.stopPropagation(); 是事件對象Event的一個方法,作用是阻止目標元素事件冒泡到父級元素 2.event.cancelBubble = true; IE瀏覽器的方法



          <!DOCTYPE html>

          <html lang="en">

          <head>

              <meta charset="UTF-8">

              <meta name="viewport" content="width=device-width, initial-scale=1.0">

              <meta http-equiv="X-UA-Compatible" content="ie=edge">

              <title>Document</title>

              <style>

               #a{

                   background: pink;

                   width: 400px;

                   height: 400px;

               }

               #b{

                   background: green;

                   width: 300px;

                   height: 300px;

               }



                #c{

                   background: red;

                   width: 200px;

                   height: 200px;

               }

              </style>

          </head>

          <body>

              <div id="a">

                  我是a

                    <div id="b">

                          我是b

                       <div id="c">我是c</div>

                    </div>

              </div>

              <script>

               var a = document.querySelector('#a')

               var b = document.querySelector('#b')

               var c = document.querySelector('#c')



               a.onclick = fn;

               b.onclick = fn;

               c.onclick = fn;



               function fn(event){

                   var e = window.event || event;

                   // 事件冒泡的阻止

                   if(e.stopPropagation){

                      e.stopPropagation();  // 通用寫法

                   }else{

                       e.cancelBubble = true; // 阻止IE

                   }

                   var str = this.innerHTML;

                   alert(str)

               }

              </script>

          </body>

          </html>


          日歷

          鏈接

          個人資料

          藍藍設計的小編 http://www.syprn.cn

          存檔

          亚洲va欧美va天堂v国产综合