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

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

 2009-11-05 00:00:00 来源:WEB开发网   
核心提示: reomveEvenetListener(/*String*/eventName, /*function*/handler, /*bool*/useCapture);删除某一 HTML 元素上注册的事件处理函数,函数声明与 addEventListener 一样,掌握 Dojo 工具包,第 3

reomveEvenetListener(/*String*/eventName, /*function*/handler, /*bool*/useCapture);

删除某一 HTML 元素上注册的事件处理函数,函数声明与 addEventListener 一样,参数意义也相同,即注册、删除事件处理函数时也需要使用同样的参数。这点不太方便,比较好的做法是 addEventListener 返回一个句柄,然后把这个句柄传递作为 removeEventListener 的参数。

sayHello, sayWorld 是两个事件处理函数,他们的参数 event 是一个事件对象,对象的属性包括事件类型(在本例中是 click),事件发生的 X,Y 坐标(这两个属性在实现 tooltip 时特别有用),事件目标(即事件的最终接收节点)等。

从这个例子中也可以看出事件处理包括三个方面:事件源、事件对象、事件处理函数。事件处理机制就是把这三个方面有机的联系起来。

注意,清单 4 的例子不能运行在 IE 浏览器里,因为 IE 浏览器采用是一种介乎 DOM level0 和 DOM Level2 之间的事件模型。比如在 IE 中,应该使用 attachEvent(), detachEvent() 来注册、注销事件处理函数。这只是 IE 中的事件模型与标准 DOM Level2 事件模型不一致部分的冰山一角,其他的诸如事件对象的传播方式、事件对象的属性、阻止事件传播的函数等,IE 与 DOM Level2 都有很大差异。这也是为什么 Dojo 会再提供一些事件处理的 API 的原因:屏蔽底层浏览器的差异,让开发人员在写编写事件处理代码时面对的是“透明”的浏览器,即不需要关心浏览器是什么。前面花了很大篇幅来介绍 DOM 事件模型,因为 Dojo 的事件处理机制是基于 DOM Level2 定义的事件模型的,然后对浏览器不兼容的情况做了很多处理,以保证使用 Dojo 的事件处理机制编写的代码能在各个浏览器上运行。下面来介绍 Dojo 的事件处理机制。

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

Tags:掌握 Dojo 工具包

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