av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

js事件機制----捕獲與冒泡機制實例分析

瀏覽:121日期:2024-05-07 17:47:21

本文實例講述了js事件機制----捕獲與冒泡機制。分享給大家供大家參考,具體如下:

先從事件綁定機制說起, 事件綁定機制通過綁定方法addEventListener()實現,

語法格式如下:

element.addEventListener(event, function, useCapture)

參數值

參數 描述 event 必須。字符串,指定事件名。 注意: 不要使用 'on' 前綴。 例如,使用 'click' ,而不是使用 'onclick'。 提示: 所有 HTML DOM 事件,可以查看我們完整的 HTML DOM Event 對象參考手冊。 function 必須。指定要事件觸發時執行的函數。 當事件對象會作為第一個參數傳入函數。 事件對象的類型取決于特定的事件。例如, 'click' 事件屬于 MouseEvent(鼠標事件) 對象。 useCapture 可選。布爾值,指定事件是否在捕獲或冒泡階段執行。 可能值: true - 事件句柄在捕獲階段執行false- false- 默認。事件句柄在冒泡階段執行

我們可以看到第三個參數是布爾值, true表示在捕獲階段執行, 而false指在冒泡階段執行

所以什么是 捕獲和冒泡?

捕獲(capture)和冒泡(bubble)是事件傳播過程中的兩個概念, 比如用戶單擊某個元素, 但由于元素處于父元素內, 該父元素又處于document對象中, document對象又處于window對象中, 因此該單擊事件實際發生在該元素, 父元素, document, window對象上, 而事件傳播過程就是瀏覽器決定依次觸發哪個對象的事件處理函數的過程.

DOM事件模型將事件傳播過程分為兩個階段: 捕獲階段和冒泡階段

在事件捕獲階段, 事件從最頂級的父元素逐層向內傳遞,

在冒泡階段, 事件從事件發生的直接元素 , 逐層向父元素傳遞

js事件機制----捕獲與冒泡機制實例分析

這里舉個簡單的例子:

點擊孫子元素, 給body中的元素都添加點擊事件并輸出觸發事件的對象id:

<!DOCTYPE html><html><head></head><body> <div id='父級'> <div id='兒子'> <div style='width:100px; height:100px; background-color:yellow'> </div> </div> </div></body><script type='text/javascript'> var a = document.getElementById(’父級’), b = document.getElementById(’兒子’), c = document.getElementById(’孫子’); a.addEventListener('click',show, true); b.addEventListener('click',show, true); c.addEventListener('click',show, true); console.log('前3為捕獲,后三個為冒泡'); a.addEventListener('click',show, false); b.addEventListener('click',show, false); c.addEventListener('click',show, false); function show(even){ console.log(this.id); }</script></html>

js事件機制----捕獲與冒泡機制實例分析

其中兩條孫子輸出相同被折疊了, 可以看到前三個是以捕獲順序, 第三個參數為true, 順序是從父親到孫子

后三個為false意思是冒泡順序, 順序是孫子到父級,即從內到外

實際上捕獲和冒泡時最外層和的元素并不是父級div,

捕獲時實際上是:

document-->html-->body-->父級div-->兒子div-->孫子div

冒泡時相反, 只不過body及以上沒添加事件并輸出, 所以在例子中沒顯現出來

所以用冒泡還是捕獲?

對于事件代理來說,在事件捕獲或者事件冒泡階段處理并沒有明顯的優劣之分,但是由于事件冒泡的事件流模型被所有主流的瀏覽器兼容,從兼容性角度來說還是建議大家使用事件冒泡模型。

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript操作DOM技巧總結》、《JavaScript頁面元素操作技巧總結》、《JavaScript事件相關操作與技巧大全》、《JavaScript查找算法技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript錯誤與調試技巧總結》

希望本文所述對大家JavaScript程序設計有所幫助。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 狠狠五月| 精品亚洲国产成人av制服丝袜 | 国产精品网站在线观看 | 亚洲一区二区三区视频 | 在线一区视频 | 亚洲精品社区 | 一区二区三区在线观看免费 | 欧美成人精品欧美一级乱黄 | av2014天堂网 | 国产精品国产三级国产 | 一区在线观看 | 一区二区中文 | 久久99热这里只频精品6学生 | 国产欧美精品一区二区三区 | 午夜黄色大片 | 一级片在线免费观看 | 超碰成人在线观看 | 国产一级免费 | 午夜在线观看视频网站 | 日韩免费一区二区 | 天堂网亚洲 | 国产浮力第一页 | 国产日韩欧美日韩大片 | 亚洲在线观看视频 | 色播五月婷婷 | 日韩免费观看视频 | 麻豆视频国产 | 国产精品久久久国产盗摄 | 求av网站| 天天爽天天操 | 色偷偷网站| 日韩一级黄色片 | 黄色一级视频网站 | 日韩高清不卡 | 四虎影院最新地址 | 亚洲在线免费观看 | 精品国产999久久久免费 | 国产一级片免费观看 | 欧美日韩一二区 | 亚洲综合在线播放 | 日韩精品视频在线免费观看 |