js事件捕獲和冒泡解析

來源:互聯網
上載者:User

標籤:階段   box   擴充   span   false   ons   class   blog   ntb   


<div id="box">    <div id="box2">        <p id="test">test</p>    </div></div><script>    document.getElementById(‘box‘).addEventListener(‘click‘,function () {        console.log(‘box‘)    },true)    document.getElementById(‘box2‘).addEventListener(‘click‘,function () {        console.log(‘box2‘)    },false)    document.getElementById(‘test‘).addEventListener(‘click‘,function () {        console.log(‘test‘)    },false)</script>

  



 

結果:

box 

test

box

 

 

 

 

addEventListener( name , function , boolean )

boolean (true) :該事件為捕獲事件,當事件觸發時候,在捕獲階段就執行

boolean (false) :該事件為冒泡事件,當事件觸發時候,在冒泡階段就執行

 

事件流程 : 

  1. test 被點擊,即事件觸發

  2. 捕獲  box ( box上面綁定了事件為捕獲事件,會執行box上面的事件)  

       3. 捕獲  box 2( box2上面綁定了事件為冒泡事件,這裡不會執行 )   

       4. 捕獲  test( test上面綁定了事件為冒泡事件,這裡不會執行 )  

       5. 冒泡  test( test上面綁定了事件為冒泡事件,這裡會執行test上面的事件 )  

       6. 冒泡  box2( test上面綁定了事件為冒泡事件,這裡會執行test上面的事件)  

       7. 冒泡  box( test上面綁定了事件為捕獲事件,這裡不會執行)  

  8.執行完畢

 

在上面的事件傳播中有一個事件裡面執行了 event.stopPropagtion() 方法, 即後面的事件都不會執行了。

 

代碼僅供參考,具體功能可以自己擴充。

http://www.cnblogs.com/jiebba    我的部落格,來看吧!

js事件捕獲和冒泡解析

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.