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

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

 2009-11-05 00:00:00 来源:WEB开发网   
核心提示: 最后是事件目标,在 W3C DOM Level2 的事件模型里,掌握 Dojo 工具包,第 3 部分: Dojo 事件机制(10),事件目标不仅仅是 DOM 树种最底层的接收事件的节点,它可以是从这个底节点到跟节点路径上的任何一个节点,将促发监听函数被调用,有点类似于 AOP 的编程思想,Doj

最后是事件目标,在 W3C DOM Level2 的事件模型里,事件目标不仅仅是 DOM 树种最底层的接收事件的节点,它可以是从这个底节点到跟节点路径上的任何一个节点。

Dojo 目前支持的事件类别包括 UIEvent,HTMLEvent, MouseEvent,每类事件具有的属性并不一样,比如只能在 MouseEvent 里才能获得事件发生时鼠标的位置等。

使用 Dojo 处理用户自定义事件

既然 W3C 已经定义了标准的 DOM Level2 事件模型,为什么 Dojo 还要提供 connect 函数来注册事件处理函数呢,为何不使用 DOM Level2 的 addEventListener 函数?从前面的叙述中也看不出 connect 与 addEventListener 有明显的不同之处。确实在处理 DOM 事件上,Dojo 的 connect 与 addEventListener 无甚大的不同,但是 Dojo 的 connect 函数还可以处理用户自定义事件。这是 addEventListener 所不具备的。下面来看看怎么使用 dojo.connect 来处理用户自定义事件。

用户自定义事件是指用户指定的函数被调用时触发的“事件”,当指定函数被调用时,将促发监听函数被调用。有点类似于 AOP 的编程思想,但在 Javascript 中实现 AOP 比起面向对象的编程语言要简单得多。


清单 6

 <html> 
 <head> 
 <script type="text/javascript" 
 djConfig="parseOnLoad: true, isDebug: true" 
 src="../dojo/dojo/dojo.js"></script> 
 </head> 
 <body> 
 <script type="text/javascript"> 
 function print(fName, args) { 
 var message = "In " + fName + "; the arguments are: " 
 dojo.forEach(args, function(args) { 
  message += args.toString() + " "; 
 }) ; 
 console.log(message); 
 } 
 function handler1() { print("handler1", arguments); } 
 function handler2(a1, a2) { print("handler2", [a1, a2]); } 
 function userFunction() { 
 print("userFunction", arguments); 
 } 
 dojo.connect("userFunction", null, "handler1"); 
 dojo.connect("userFunction", null, "handler2"); 
 userFunction(1, 2); 
 </script> 
 </body> 
 </html>

上一页  5 6 7 8 9 10 

Tags:掌握 Dojo 工具包

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