0 Comments

事件顺序

发布于:2014-04-02  |   作者:广州网站建设  |   已聚集:人围观

事件顺序

在进一步讨论之前,很有必要介绍一下事件顺序。如果一个节点和它的一个父节点都绑定了相同事件类型的回调,当事件触发时哪个回调会先执行?尽管网景和微软的处理方式不一致,也不要太过担心。

Netscape 4 支持事件捕捉(capturing),从顶层的父节点开始触发事件,从外到内传播。微软则支持事件冒泡(bubbling),从最内层的节点开始触发事件,逐级冒泡直到顶层节点,从内向外传播。

我认为事件冒泡看起来更合理一些,这也是我们日常开发所用的事件模型。W3C 对此做了让步,将对这两种事件模型的支持都加入标准规范之中。根据W3C 模型,事件首先被目标元素所捕捉,然后向上冒泡。
广州网站建设,广州网站设计,广州网站制作,网站建设,网站设计,广州网站建设公司,广州网站设计公司

你可以自行选择要注册的事件处理程序的调用类型,捕捉或冒泡,通过给addEvent-Listener() 传入第3 个参数useCapture 来设置。如果addEventListener() 的最后一个参数是true,事件处理程序以捕捉模式触发;如果是false,事件处理程序以冒泡模式触发:


  1. // 给最后一个参数传入false,来设置事件冒泡  
  2. button.addEventListener("click", function(){ /* ... */ }, false); 

 

大多数情况下我们都在使用冒泡模式,如果对此不太确定,可以给addEventListener()的最后一个参数传入false。
标签:
飞机