Dojo入门(3)—事件
2006-12-22 11:03
162 查看
介绍
跟一般意义上的Web程序员的DOM事件不同,Dojo支持更广泛意义上的事件。使用dojo.event.*工具,开发者可以处理任何可以被监听到的事件(包括DOM事件)。使用DOJO,程序可以使用一致的方法来监听任何动作。在这章文章中我们将向你展示:
·如何使用这些工具;
·为什么它跟你以前使用的javascript事件系统完全不同;
·为什么没有dojo.event.connect()你就不想写javascript程序;:-)
示例:
使用dojo.event.connect()能帮助你handle需要的DOM节点中的动作:var handlerNode = document.getElementById("handler");
function handleOnClick(evt){
// ...
}
dojo.event.connect(handlerNode, "onclick", "handleOnClick");
一般说来,IE会容易我们的书写的函数中的第一个参数:DOM事件对象,IE会要求使用window.event.connect()方法显式安装这个对象,用来确认是否传送了此对象,如果没有则忽略掉。现在,使用我们的connect(),你可以不再写这样的代码了。
如果你不想命名你的函数呢?下面的代码跟上面的代码是等价的:
var handlerNode = document.getElementById("handler");
dojo.event.connect(handlerNode, "onclick", function(evt){
// ...
});
至此,我们可以完成将DOM节点的onclick事件跟函数相联了,虽然我们什么都没有做。但,如何将Dom节点的事件跟一个对象的方法(要知道:js可是一个oob语言了)相关联呢?一般说来,我们可以这样做(一般js的做法):
var handlerNode = document.getElementById("handler");
handlerNode.onclick = function(evt){
object.handler(evt);
};
对Dojo而言,则可以这样:
var handlerNode = document.getElementById("handler");
dojo.event.connect(handlerNode, "onclick", object, "handler");
connetc()可以确保handlerNode.onclick()被调用时,object.handler()同样也能被调用。javascript的语法限制了将object和function写在一起传递,使用分割的方式可以同样实现这一点。
connect()也可以显示的支持多监听器,它们将按它们注册的顺序执行。例如:
var handlerNode = document.getElementById("handler");
dojo.event.connect(handlerNode, "onclick", object, "handler");
dojo.event.connect(handlerNode, "onclick", object, "handler2");
connetc()可以确保handlerNode.onclick()被调用时,object.handler()同样也能被调用。javascript的语法限制了将object和function写在一起传递,使用分割的方式可以同样实现这一点。
connect()也可以显示的支持多监听器,它们将按它们注册的顺序执行。例如:
var handlerNode = document.getElementById("handler");
dojo.event.connect(handlerNode, "onclick", object, "handler");
dojo.event.connect(handlerNode, "onclick", object, "handler2");
相关文章推荐
- Dojo入门:dojo中的事件处理
- Dojo入门:dojo中的事件处理
- Dojo入门:dojo中的事件处理
- Dojo入门:dojo中的事件处理
- 复杂事件处理引擎—Esper入门
- Spring入门之事件处理
- OpenCV入门:ROI感兴趣区域(鼠标事件选定区域)
- JAVA基础之dojo快速入门
- Spring入门学习——使用应用事件进行通信
- dojo 入门
- C# 自定义控件入门(自定义控件添加事件1)
- JS 事件入门
- 从零开始学_JavaScript_系列(九)——dojo(2)(AJAX、时间控件、鼠标事件、样式修改、事件移除、消息发布订阅)
- 复杂事件处理——Esper入门(示例程序)
- 突袭HTML5之Canvas 2D入门5 - 事件与动画
- 2013 duilib入门简明教程 -- 响应按钮事件(4)
- 手把手教你Dojo入门
- JQuery入门——用unbind方法移除绑定事件
- JQurey入门――事件机制之事件中的冒泡现象示例解释
- 微信小程序入门四:视图层事件