DOM事件模型的两件事(1)

2016-02-19 14:09 4 1 收藏

想不想get新技能酷炫一下,今天图老师小编就跟大家分享个简单的DOM事件模型的两件事(1)教程,一起来看看吧!超容易上手~

【 tulaoshi.com - Web开发 】

  事件捕捉(EventCapture)的实现问题
  
  IE的高级事件处理模型的问题
  
  一、事件捕捉(EventCapture)的实现问题
  
  首先在说这件事前,先感谢一下Realazy。
  
  W3CDOMLevel2的事件模型规范中,事件在DOM树中的传播过程(从根节点到目标节点)被分为了两个阶段:捕捉(Capture)和冒泡(Bubbling)。下面这个图能大概的说明整个过程:
  
  (fromW3C)
  
  如果想创建一个捕捉事件,在支持W3C事件模型的浏览器中,将addEventListener的第三个参数设为true就好了。例如:
  
  document.getElementById('foo').addEventListener('click',function(){alert('Hello,world!');},true);
  
  前一阵因为想弄懂事件捕捉,所以做了点小实验,分别在Firefox2、Safari3onWindows和Opera9上实践了事件捕捉(当然,因为IE不支持事件捕捉,所以),实验的原理见下图:
  
  ID为div1和div2的两个元素都被委派了捕捉阶段的事件处理函数,这样:
  
  当点击#div1(蓝色区域)时,应该会alert出div1″
  
  当点击#div2(黄色区域)时,应该会先alert出div1″,再alert出div2″,因为在事件捕捉阶段,事件是从根元素向下传播的,#div1是#div2的父元素,自然绑定在#div1上的click事件也会先于#div2上的click事件被执行。
  
  然而,以上的设想只试用于Firefox2和Safari3onWindows,在Opera9中,事情会变成这样:
  
  当点击#div1(蓝色区域)时,什么都不会发生
  
  当点击#div2(黄色区域)时,会alert出div1″,随后什么都不会再发生
  
  可以看出,在Opera9中,目标元素(TargetElement)的click事件没有被执行。通过Realazy(orz)的指点,找到了这篇文章:《Eventcaptureexplained》,发现,
  
  来Opera中的实现才是正确的。此文中有一段话如是说:
  
  TheDOMspecstatesthatcapturingeventsshouldnotfireontarget,becausetheideaofacapturingeventistodetecteventsbeforetheyreachtheirtargets.BecauseofbugsinGeckoandSafari,webcontentthatistestedmostlywithFirefoxorotherGecko-basedbrowserssometimesexpectscapturinglistenerstofireontarget.SuchcontentwillfailinOpera7,8andcurrentreleasesof9becauseofitscorrectimplementationofthestandard.
  
  大意是说:DOM规范中陈述了捕捉型的事件不应该在目标元素上被执行,因为捕捉型事件的用意就是为了监测到达目标元素之前的事件。Firefox和Safari的实现都是带有bug的。
  
  再来看看W3C的DOMEvents规范中的原话:
  
  AcapturingEventListenerwillnotbetriggeredbyeventsdispatcheddirectlytotheEventTargetuponwhichitisregistered.
  
  所以,在整个事件传播中,被执行的顺序是:
  
  父元素中所有的捕捉型事件(如果有)自上而下地执行
  
  目标元素的冒泡型事件(如果有)
  
  父元素中所有的冒泡型事件(如果有)自下而上地执行
  
  在了解了这些后,也许还是不要使用事件捕捉为妙,至少暂时不要。
  
 

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

来源:https://www.tulaoshi.com/n/20160219/1606298.html

延伸阅读
作为男人,当然都希望能娶到一位美丽大方并且能帮助自己的妻子。女人可以是家里的后备力量,也可能是不安因素的导火线。那么从面相分析,什么样的女人能旺夫呢?而男人喜欢什么样的女人呢?接下来一起看看吧。 爱做这两件事的女人是最旺夫 这类女士貌似在家庭中当家作主一言九鼎,或者事业成功风光无限,但是,在洞若观火的专...
标签: 女人养生
女人拥有好气血定要做这两件事 哪有女人不爱美的道理,女人的天性与爱美是分不开的,就像人每天吃饭、睡觉一样,是必不可少的。而且,如今这个时代早已是“一张脸走遍全世界”的时刻,所以可想而知,姣好面容的重要性!越来越多的女性群体开始疯狂的、“不择不断”的使用各种各样的护肤方式,力求达到比...
女人爱美必做两件事 补血通便 爱美是每个女人的天性,想让自己变得美丽,最重要的就是要补血和通便,外表的保养固然重要,但是内部气息的调理也是非常重要的。 养血 一、养血 女性天生有生理上的“磨难”——月经、怀孕、生产、哺乳,而且在这时有着耗血和失血的特点。“血为...
标签: 电脑入门
Windows7现在已经非常普及了,相比之前的Vista系统,Windows7的速度真的是很快了,但你是否担心自己的Windows7系统就像新安装其他Windows系统一样仅仅是刚开始运行飞快,随着时间的推移就会导致效率越来越低呢?想要保持自己的Windows7系统一直运行如飞并非是难事,下面将两个有效的优化小方法告诉你,让你保持Windows7的高速度运行。 1. 系统...
标签: 孕前
孕前准备之健康怀孕的10大守则 想要生一个健康聪明的宝宝,孕前准备工作少不了,为了达到健康怀孕这一目的,亲亲宝贝图老师小编提醒各位未准爸妈,一定要遵守孕前准备工作中的这10大守则,下面我们就一起来看看守则的具体内容吧。 守则之一:不要太胖或者太瘦 肥胖不但有可能危及身体健康,它还会使激...

经验教程

470

收藏

77
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部