- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
js中深度讲解捕获的和冒泡
冒泡和捕获1.捕获阶段:事件从最不精确的对象(document 对象)开始触发,然后到事件目标,从外向内捕获事件对象;2.目标阶段:到达事件目标位置(事发地),触发事件;3.冒泡阶段:事件按照从最特定的事件目标开始,沿着文档逐层向上冒泡,到document为止,从内向外冒泡事件对象。4. DOM事件流:同时支持两种事件模型:捕获型事件和冒泡型事件,但是,捕获型事件先发生。两种事件流会触及DOM中的所有对象,从document对象开始,也在document对象结束。5.了解:DOM事件模型最独特的性质是,文本节点也触发事件(在IE中不会)。支持W3C标准的浏览器在添加事件时用addEventListener(event,fn,useCapture)方法,基中第3个参数useCapture是一个Boolean值,用来设置事件是在事件捕获时执行,还是事件冒泡时执行。而不兼容W3C的浏览器(IE)用attachEvent()方法,此方法没有相关设置,不过IE的事件模型默认是在事件冒泡时执行的,也就是在useCapture等于false的时候执行,所以把在处理事件时把useCapture设置为false是比较安全,也实现兼容浏览器的效果。6.事件的传播是可以阻止的:? 在W3c中,使用stopPropagation()方法? 在IE下设置cancelBubble = true;在捕获的过程中stopPropagation();后,后面的冒泡过程也不会发生了~3.阻止事件的默认行为,例如click a后的跳转~? 在W3c中,使用preventDefault()方法;? 在IE下设置window.event.returnValue = false;4.不是所有的事件都能冒泡,例如:blur、focus、load、unload,(这个是从别人的文章里摘过来的,我没测试)。/zhenn/archive/2011/02/19/1958748.html取消事件冒泡在默认情况下,发生在一个子元素上的单击事件(或者其他事件),如果在其父级元素绑定了一个同样的事件,此时点击子元素,click事件会首先被子元素捕获,执行绑定的事件程序,之后会被父级元素捕获,再次激发一段脚本的执行,这就是所谓的“事件冒泡”。看个例子:!DOCTYPE htmlhtml xmlns=/1999/xhtmlheadmeta http-equiv=Content-Type content=text/html; charset=utf-8 /title无标题文档/titlestyle type=text/css*{ margin:0; padding:0;}/style/headbodydiv id=obj1 style= width:500px; height:500px; background:#000;div id=obj2 style=width:400px; height:400px; background:red;/div/divscript type=text/javascriptvar obj1 = document.getElementById(obj1);var obj2 = document.getElementById(obj2);obj1.onclick = function(){alert(我点击了obj1);}obj2.onclick = function(e){alert(我点击了obj2);}/script/body/html在通常情况下,我们只希望事件发生在它的目标而并非它的父级元素上,只需加个stopBubble方法,即可取消事件冒泡,详见以下代码:!DOCTYPE htmlhtml xmlns=/1999/xhtmlheadmeta http-equiv=Content-Type content=text/html; charset=utf-8 /title无标题文档/titlestyle type=text/css*{ margin:0; padding:0;}/style/headbodydiv id=obj1 style= width:500px; height:500px; background:#000;div id=obj2 style=width:400px; height:400px; background:red;/div/divscript type=text/javascript//阻止事件冒泡的通用函数function stopBubble(e){// 如果传入了事件对象,那么就是非ie浏览器if(ee.stopPropagation){//因此它支持W3C的stopPropagation()方法e.stopProp
您可能关注的文档
- iOS App 签的名流程.doc
- IoT WIFI 芯片与的模组汇总.pptx
- IM的DS_很全面的培训教材.ppt
- IP Protection Policy Orientation-Chin的ese职员.ppt
- IPv6系统教的程1.ppt
- IGBT模块封装及的车用变流器设计与验证.ppt
- ip地址的的分类.ppt
- ip地的址管理与规划.doc
- IPTV的基础培训.ppt
- IP的AM模块与组态软件通讯介绍.pdf
- 第18讲 第17课 西晋的短暂统一和北方各族的内迁.docx
- 第15讲 第14课 沟通中外文明的“丝绸之路”.docx
- 第13课时 中东 欧洲西部.doc
- 第17讲 第16 课三国鼎立.docx
- 第17讲 第16课 三国鼎立 带解析.docx
- 2024_2025年新教材高中历史课时检测9近代西方的法律与教化含解析新人教版选择性必修1.doc
- 2024_2025学年高二数学下学期期末备考试卷文含解析.docx
- 山西版2024高考政治一轮复习第二单元生产劳动与经营第5课时企业与劳动者教案.docx
- 第16讲 第15课 两汉的科技和文化 带解析.docx
- 第13课 宋元时期的科技与中外交通.docx
文档评论(0)