实战IT培训机构_IT培训班选大学生IT技术培训中心_中公优就业

400-650-7353
您所在的位置:首頁 > IT干貨資料 > web前端 > 【Web前端基礎知識】DOM事件流

【Web前端基礎知識】DOM事件流

  • 發布: 優就業it培訓
  • 來源:
  • 2021-10-29 15:47:07
  • 閱讀()
  • 分享
  • 手機端入口

DOM(文檔對象模型)結構是一個樹型結構,當一個HTML元素產生一個事件時,該事件會在元素節點與根結點之間的路徑傳播,路徑所經過的結點都會收到該事件,這個傳播過程可稱為DOM事件流。

DOM 事件流會有 3 個階段:

事件捕獲階段、確定目標階段、事件冒泡階段。

事件傳播的順序對應瀏覽器的兩種事件流模型:捕獲型事件流和冒泡型事件流。

事件捕獲階段:

事件的傳播是從最不特定的事件目標到最特定的事件目標。即從 DOM 樹的根到葉子,也就是從document節點開始一層一層向下傳播,直到尋找到觸發事件的元素。

確定目標階段:

通過捕獲確定具體觸發事件的元素,之后進行處理事件。

事件冒泡階段:

事件的傳播是從最特定的事件目標到最不特定的事件目標。即從 DOM 樹的葉子到根,也就是我們從觸發事件的元素一層一層向外傳遞事件,直到document節點。

比如在div元素在觸發click事件時,該事件的捕獲階段最先開始,從Document節點開始逐漸向下傳播,直到div元素,事件進入目標階段處理事件,在目標階段結束之后,事件由div元素開始事件的冒泡階段,一層一層向外直到Document節點為止。總的來說捕獲階段是從里到外,冒泡階段是從里向外。

在如下代碼中,點擊時彈出各自的id名稱。

  1. <div id="box1" style="background-color: red;"
  2.     <div id="box2" style="background-color: yellow;"
  3.         <div id="box3" style="background-color: yellowgreen;"></div> 
  4.     </div> 
  5. </div> 

Js代碼為:

  1. var oDiv = document.getElementsByTagName('div'
  2. function fun(){ 
  3.     alert(this.id); 
  4. oDiv[0].addEventListener('click',fun) 
  5. oDiv[1].addEventListener('click',fun) 
  6. oDiv[2].addEventListener('click',fun) 

當我們點擊box3時,彈出順序為box3 、box2、box1。

我們來分析一下過程,在點擊事件發生時,開始進行事件捕獲,從根節點document開始根據結構一層一層往里查找,到html元素,到body元素,再到box1元素,再到box2元素,再到box3元素,此時找到了觸發事件的元素,捕獲階段結束。之后進入確認目標階段,開始處理事件,彈出box3。處理事件完成后將事件根據結構依次傳遞給父元素,當傳遞到box2元素時,發現box2有同類型的事件,所以觸發box2的點擊事件彈出box2,再向外傳遞給box1元素,同理box1有同類型的事件,彈出box1.

阻止冒泡:

如果你感覺冒泡機制影響了你的代碼,就可以進行阻止冒泡。

標準瀏覽器:ev.stopPropagation();(ev為事件對象)

Ie瀏覽器:ev.cancelBubble = true;(ev為事件對象)

例如在上述代碼中只想讓box3觸發點擊事件,我們就可以給box3添加事件時寫上

  1. oDiv[2].onclick = function (ev){ 
  2.    var ev = window.event || ev;  
  3.    ev.stopPropagation ? ev.stopPropagation() : ev.cancelBubble = true

 

文章“【Web前端基礎知識】DOM事件流”已幫助

更多內容

>>本文地址:http://www.jecan.cn/zhuanye/2021/70629.html

THE END  

聲明:本站稿件版權均屬中公教育優就業所有,未經許可不得擅自轉載。

1 您的年齡

2 您的學歷

3 您更想做哪個方向的工作?

獲取測試結果
  • 大前端大前端
  • 大數據大數據
  • 互聯網營銷互聯網營銷
  • JavaJava
  • Linux云計算Linux
  • Python+人工智能Python
  • 嵌入式物聯網嵌入式
  • 全域電商運營全域電商運營
  • 軟件測試軟件測試
  • 室內設計室內設計
  • 平面設計平面設計
  • 電商設計電商設計
  • 網頁設計網頁設計
  • 全鏈路UI/UE設計UI設計
  • VR/AR游戲開發VR/AR
  • 網絡安全網絡安全
  • 新媒體與短視頻運營新媒體
  • 直播帶貨直播帶貨
  • 智能機器人軟件開發智能機器人
 

快速通道fast track

近期開班時間TIME

主站蜘蛛池模板: 德国BOSCH电磁阀-德国HERION电磁阀-JOUCOMATIC电磁阀|乾拓百科 | 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 岩棉板|岩棉复合板|聚氨酯夹芯板|岩棉夹芯板|彩钢夹芯板-江苏恒海钢结构 | 耐磨陶瓷管道_除渣器厂家-淄博浩瀚陶瓷科技有限公司 | 全屋整木定制-橱柜,家具定制-四川峨眉山龙马木业有限公司 | 重庆网站建设,重庆网站设计,重庆网站制作,重庆seo,重庆做网站,重庆seo,重庆公众号运营,重庆小程序开发 | 清管器,管道清管器,聚氨酯发泡球,清管球 - 承德嘉拓设备 | 铝合金重力铸造_铝合金翻砂铸造_铝铸件厂家-东莞市铝得旺五金制品有限公司 | 杭州标识标牌|文化墙|展厅|导视|户内外广告|发光字|灯箱|铭阳制作公司 - 杭州标识标牌|文化墙|展厅|导视|户内外广告|发光字|灯箱|铭阳制作公司 | 半容积式换热器_北京浮动盘管换热器厂家|北京亿丰上达 | SF6环境监测系统-接地环流在线监测装置-瑟恩实业 | 有机肥设备生产制造厂家,BB掺混肥搅拌机、复合肥设备生产线,有机肥料全部加工设备多少钱,对辊挤压造粒机,有机肥造粒设备 -- 郑州程翔重工机械有限公司 | 珠宝展柜-玻璃精品展柜-首饰珠宝展示柜定制-鸿钛展柜厂家 | 最新电影-好看的电视剧大全-朝夕电影网 | 聚氨酯保温钢管_聚氨酯直埋保温管道_聚氨酯发泡保温管厂家-沧州万荣防腐保温管道有限公司 | 缠绕机|缠绕膜包装机|缠绕包装机-上海晏陵智能设备有限公司 | 海外仓系统|国际货代系统|退货换标系统|WMS仓储系统|海豚云 | 消泡剂-水处理消泡剂-涂料消泡剂-切削液消泡剂价格-东莞德丰消泡剂厂家 | 合金ICP光谱仪(磁性材料,工业废水)-百科 | PTFE接头|聚四氟乙烯螺丝|阀门|薄膜|消解罐|聚四氟乙烯球-嘉兴市方圆氟塑制品有限公司 | 123悬赏网_发布悬赏任务_广告任务平台| 数码听觉统合训练系统-儿童感觉-早期言语评估与训练系统-北京鑫泰盛世科技发展有限公司 | 郑州水质检测中心_井水检测_河南废气检测_河南中环嘉创检测 | 展厅装修公司|企业展厅设计|展厅制作|展厅搭建—广州展厅装饰公司 | 制氮设备_PSA制氮机_激光切割制氮机_氮气机生产厂家-苏州西斯气体设备有限公司 | 楼承板-开口楼承板-闭口楼承板-无锡海逵 | 不锈钢轴流风机,不锈钢电机-许昌光维防爆电机有限公司(原许昌光维特种电机技术有限公司) | 集装袋吨袋生产厂家-噸袋廠傢-塑料编织袋-纸塑复合袋-二手吨袋-太空袋-曹县建烨包装 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 广州/东莞小字符喷码机-热转印打码机-喷码机厂家-广州瑞润科技 | 深圳市宏康仪器科技有限公司-模拟高空低压试验箱-高温防爆试验箱-温控短路试验箱【官网】 | 深圳标识制作公司-标识标牌厂家-深圳广告标识制作-玟璟广告-深圳市玟璟广告有限公司 | 脑钠肽-白介素4|白介素8试剂盒-研域(上海)化学试剂有限公司 | 无菌实验室规划装修设计-一体化实验室承包-北京洁净净化工程建设施工-北京航天科恩实验室装备工程技术有限公司 | 【同风运车官网】一站式汽车托运服务平台,验车满意再付款 | 贴片电容-贴片电阻-二三极管-国巨|三星|风华贴片电容代理商-深圳伟哲电子 | 滚筒烘干机_转筒烘干机_滚筒干燥机_转筒干燥机_回转烘干机_回转干燥机-设备生产厂家 | 体坛网_体坛+_体坛周报新闻客户端 | 光伏支架成型设备-光伏钢边框设备-光伏设备厂家 | 广东教师资格网-广东教师资格证考试网|