电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

js點擊事件的執行過程實例分析【冒泡與捕獲】

瀏覽:113日期:2024-05-13 11:57:45

本文實例講述了js點擊事件的執行過程。分享給大家供大家參考,具體如下:

js事件對象event包括很多事件類型,這里用onclick事件為例,探討一下在js事件捕獲機制和冒泡機制下的執行過程,以及如何阻止事件的捕獲和冒泡。

首先看下當我們點擊一個元素后,瀏覽器的執行過程。

1,當某個元素綁定的事件被觸發時,這時瀏覽器就會從頂級document元素發出一個事件流

2,這個事件流順著dom層級,一層一層向下找,直到遇到了觸發事件的目標元素,這個查找的過程是捕獲階段

說明:捕獲階段,在查找每一層dom時,遇到相同的事件默認不執行,元素的事件默認在冒泡階段執行

3,到達目標元素后會觸發目標元素綁定的事件函數,也就是目標元素事件函數處理階段

4,在處理過目標元素事件后,在順著dom層級一層一層向上查找,這時對應dom上如果有相同的事件,默認會被觸發,冒泡階段

實例:

<!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></head><body> <div οnclick='firstClick()'> parent <div οnclick='secondClick()'>child <div onclick = 'thirdClick()'>提交</div> </div></div><script> var divs=document.querySelectorAll('div');//獲取所有的divs function firstClick(){ alert(’firstClick’) } function secondClick(){ alert(’secondClick’) } function thirdClick(){ alert(’thirdClick’) } function fn0(){ alert('box'); } function fn1(){ alert('child'); } function fn2(){ alert('but'); } divs[0].addEventListener('click',fn0,false); divs[1].addEventListener('click',fn1,false); divs[2].addEventListener('click',fn2,false);</script></body></html>

說明:

addEventListener有三個參數,最后一個參數是決定元素事件的觸發階段,默認是false,在冒泡階段執行,設置為true,則在捕獲階段執行。

在dom上直接綁定的事件會在addEventListenter監聽的事件執行之后執行。

阻止冒泡:

onclick = function(e){ e=e||window.event; if(e.stopPropagation){ e.stopPropagation();//其它瀏覽器 }else{ e.cancelBubble=true;//IE瀏覽器 }}

阻止捕獲:判斷e.target

function fn0(e){ if(e.target == divs[0]){ alert('fn0'); }}divs[0].addEventListener('click',fn0,true);

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

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

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

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 台式核磁共振仪,玻璃软化点测定仪,旋转高温粘度计,测温锥和测温块-上海麟文仪器 | 哈尔滨京科脑康神经内科医院-哈尔滨治疗头痛医院-哈尔滨治疗癫痫康复医院 | 亚克隆,RNAi干扰检测,miRNA定量检测-上海基屹生物科技有限公司 | 消防设施操作员考试报名时间,报名入口,报考条件 | 防火窗_耐火窗_防火门厂家_防火卷帘门-重庆三乐门业有限公司 | 药品/药物稳定性试验考察箱-埃里森仪器设备(上海)有限公司 | 耐腐蚀泵,耐腐蚀真空泵,玻璃钢真空泵-淄博华舜耐腐蚀真空泵有限公司 | 罐体电伴热工程-消防管道电伴热带厂家-山东沃安电气 | 上海律师事务所_上海刑事律师免费咨询平台-煊宏律师事务所 | 知名电动蝶阀,电动球阀,气动蝶阀,气动球阀生产厂家|价格透明-【固菲阀门官网】 | 东莞办公家具厂家直销-美鑫【免费3D效果图】全国办公桌/会议桌定制 | 压力变送器-上海武锐自动化设备有限公司| 考试试题_试卷及答案_诗词单词成语 - 优易学 | 防水套管|柔性防水套管|伸缩器|伸缩接头|传力接头-河南伟创管道 防水套管_柔性防水套管_刚性防水套管-巩义市润达管道设备制造有限公司 | 中央空调维修、中央空调保养、螺杆压缩机维修-苏州东菱空调 | 北京工业设计公司-产品外观设计-产品设计公司-千策良品工业设计 北京翻译公司-专业合同翻译-医学标书翻译收费标准-慕迪灵 | 深圳美安可自动化设备有限公司,喷码机,定制喷码机,二维码喷码机,深圳喷码机,纸箱喷码机,东莞喷码机 UV喷码机,日期喷码机,鸡蛋喷码机,管芯喷码机,管内壁喷码机,喷码机厂家 | 电位器_轻触开关_USB连接器_广东精密龙电子科技有限公司 | 实验室pH计|电导率仪|溶解氧测定仪|离子浓度计|多参数水质分析仪|pH电极-上海般特仪器有限公司 | 水轮机密封网 | 水轮机密封产品研发生产厂家| 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 安徽净化板_合肥岩棉板厂家_玻镁板厂家_安徽科艺美洁净科技有限公司 | 书法培训-高考书法艺考培训班-山东艺霖书法培训凭实力挺进央美 | 400电话_400电话申请_866元/年_【400电话官方业务办理】-俏号网 3dmax渲染-效果图渲染-影视动画渲染-北京快渲科技有限公司 | 航空铝型材,7系铝型材挤压,硬质阳*氧化-余润铝制品 | 北京晚会活动策划|北京节目录制后期剪辑|北京演播厅出租租赁-北京龙视星光文化传媒有限公司 | 耐高温风管_耐高温软管_食品级软管_吸尘管_钢丝软管_卫生级软管_塑料波纹管-东莞市鑫翔宇软管有限公司 | 涿州网站建设_网站设计_网站制作_做网站_固安良言多米网络公司 | 中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折! | 杭州厂房降温,车间降温设备,车间通风降温,厂房降温方案,杭州嘉友实业爽风品牌 | wika威卡压力表-wika压力变送器-德国wika代理-威卡总代-北京博朗宁科技 | 台湾阳明固态继电器-奥托尼克斯光电传感器-接近开关-温控器-光纤传感器-编码器一级代理商江苏用之宜电气 | 济南玻璃安装_济南玻璃门_济南感应门_济南玻璃隔断_济南玻璃门维修_济南镜片安装_济南肯德基门_济南高隔间-济南凯轩鹏宇玻璃有限公司 | 托盘租赁_塑料托盘租赁_托盘出租_栈板出租_青岛托盘租赁-优胜必达 | 浙江美尔凯特智能厨卫股份有限公司| 食品无尘净化车间,食品罐装净化车间,净化车间配套风淋室-青岛旭恒洁净技术有限公司 | 渣油泵,KCB齿轮泵,不锈钢齿轮泵,重油泵,煤焦油泵,泊头市泰邦泵阀制造有限公司 | 分轨 | 上传文件,即刻分离人声和伴奏| 深圳市源和塑胶电子有限公司-首页 | 昆山PCB加工_SMT贴片_PCB抄板_线路板焊接加工-昆山腾宸电子科技有限公司 | 炉门刀边腹板,焦化设备配件,焦化焦炉设备_沧州瑞创机械制造有限公司 |