WEB开发网
开发学院软件开发Java 掌握 Dojo 工具包,第 3 部分: Dojo 事件机制 阅读

掌握 Dojo 工具包,第 3 部分: Dojo 事件机制

 2009-11-05 00:00:00 来源:WEB开发网   
核心提示: document.getElementById("btn").onclick=null;document.getElementById("btn").onclick="";W3C DOM Level2 标准有了新的事件模型,新模型最大的

 document.getElementById("btn").onclick=null; 
 document.getElementById("btn").onclick="";

W3C DOM Level2 标准有了新的事件模型,新模型最大的变化有两点:

首先,事件不再只传播到目标节点,事件的传播被分为三个阶段:捕获阶段,目标节点阶段,冒泡阶段。一个事件将在 DOM 树中传递两次,首先从 DOM 根节点到目标节点(捕获阶段),然后从目标节点传递到根节点(冒泡阶段)。在这三个阶段都可以捕获事件进行处理,也可以阻止事件继续传播。 W3C 的官方网站有关于这三个阶段的详细说明。在 DOM Level0 定义的事件模型中,事件只能被目标节点处理,其实这也是大部分支持事件处理的编程语言采用的机制,比如 Java,C# 。但是这种方式可能并不适合结构比较复杂的 web 页面。比如很多链接都需要自定义的 tooltip,在 DOM Level0 的方式下,需要给每个链接的 mouseover,mouseout 事件提供事件处理函数,工作量很大。而在 DOM Level2 模型中,我们可以在这些链接的公共父节点上处理 mouseover,mouseout 事件,在 mouseover 时显示一个 tooltip,mouseout 时隐藏这个 tooltip 。这样只需要对一处进行更改即可给每个链接添加上自定义的 tooltip 。所以 DOM Level2 的设计者定义出分为三个阶段的事件模型也是为了适应复杂的 web 页面,让开发人员在处理事件上有更大的自由度。

其次,支持一个事件注册多个事件处理函数,也能够删除掉这些注册的事件处理函数。一个事件可以注册多个事件处理函数同样是大部分的编程语言的事件处理机制支持的方式。这种方式在面向对象的开发中尤为重要,因为可能很多对象都需要监听某一事件,有了这种方式,这些对象可以随时为这一事件注册一个事件处理函数,事件处理函数的注册是分散的,而不像在 DOM Level0 中,事件处理是集中式的,使用这种方式使得事件的“影响力”大大增强。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:掌握 Dojo 工具包

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接