js 事件的傳播機(jī)制(實(shí)例講解)
事件的默認(rèn)傳播機(jī)制:
捕獲階段:從外向里依次查找元素
目標(biāo)階段:從當(dāng)前事件源本身的操作
冒泡階段:從內(nèi)到外依次觸發(fā)相關(guān)的行為(我們最常用的就是冒泡階段)
具體見下圖:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> #outer{ margin:20px auto; padding:20px; width:300px; height:300px; background:#008000; } #inner{ padding:20px; width:200px; height:200px; background:blue; } #center{ padding:20px; width:100px; height:100px; background:yellow; } </style> </head> <body> <div id='outer'> <div id='inner'> <div id='center'></div> </div> </div> <script> var outer = document.getElementById('outer'),inner = document.getElementById('inner'),center = document.getElementById('center'); //使用DOM0級(jí)事件綁定給元素的某一個(gè)行為綁定的方法,都是在行為觸發(fā)后的冒泡階段把方法執(zhí)行的 document.body.onclick = function(){ console.log('body') } outer.onclick = function(){ console.log('outer') } inner.onclick = function(){ console.log('inner') } center.onclick = function(){ console.log('center') } //addEventListener 第一個(gè)參數(shù)是行為的類型 第二個(gè)參數(shù)是給當(dāng)前的行為定義的方法 第三個(gè)參數(shù)是控制在哪個(gè)階段發(fā)生:true 在捕獲階段發(fā)生 false在冒泡階段發(fā)生 document.body.addEventListener('click',function(){ console.log('body') },false) outer.addEventListener('click',function(){ console.log('outer') },true) inner.addEventListener('click',function(){ console.log('inner') },false) //輸出 outer inner body </script> </body> </html>
以上這篇js 事件的傳播機(jī)制(實(shí)例講解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
js循環(huán)map 獲取所有的key和value的實(shí)現(xiàn)代碼(json)
這篇文章主要介紹了js循環(huán)map 獲取所有的key和value的實(shí)現(xiàn)代碼(json),需要的朋友可以參考下2018-05-05JS判斷對(duì)象是否為空對(duì)象的幾種實(shí)用方法匯總
判斷是否為空對(duì)象在實(shí)際開發(fā)中很常見,下面這篇文章主要給大家介紹了關(guān)于JS判斷對(duì)象是否為空對(duì)象的幾種實(shí)用方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05微信小程序的數(shù)據(jù)存儲(chǔ)與Django等服務(wù)發(fā)送請(qǐng)求?講解
這篇文章主要為大家介紹了微信小程序的數(shù)據(jù)存儲(chǔ)與Django等服務(wù)發(fā)送請(qǐng)求講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04JS奇技之利用scroll來監(jiān)聽resize詳解
這篇文章主要給大家介紹了JS奇技之利用scroll來監(jiān)聽resize的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-06-06深入淺析JavaScript中數(shù)據(jù)共享和數(shù)據(jù)傳遞
這篇文章主要介紹了深入淺析JavaScript中數(shù)據(jù)共享和數(shù)據(jù)傳遞的相關(guān)資料,需要的朋友可以參考下2016-04-04javascript實(shí)現(xiàn)在下拉列表中顯示多級(jí)樹形菜單的方法
這篇文章主要介紹了javascript實(shí)現(xiàn)在下拉列表中顯示多級(jí)樹形菜單的方法,涉及javascript屬性菜單的定義、構(gòu)造及遍歷等技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08