加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Dojo入门(3)—事件

发布时间:2020-12-16 21:55:57 所属栏目:百科 来源:网络整理
导读:介绍 跟一般意义上的 Web 程序员的 DOM 事件不同, Dojo 支持更广泛意义上的事件。使用 dojo.event.* 工具,开发者可以处理任何可以被监听到的事件(包括 DOM 事件)。使用 DOJO ,程序可以使用一致的方法来监听任何动作。 在这章文章中我们将向你展示: ·

介绍

跟一般意义上的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,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,object,"handler");

connetc()可以确保handlerNode.onclick()被调用时,object.handler()同样也能被调用。javascript的语法限制了将objectfunction写在一起传递,使用分割的方式可以同样实现这一点。

connect()也可以显示的支持多监听器,它们将按它们注册的顺序执行。例如:

var handlerNode = document.getElementById("handler");

dojo.event.connect(handlerNode,"handler");

dojo.event.connect(handlerNode,"handler2");

connetc()可以确保handlerNode.onclick()被调用时,object.handler()同样也能被调用。javascript的语法限制了将objectfunction写在一起传递,使用分割的方式可以同样实现这一点。

connect()也可以显示的支持多监听器,它们将按它们注册的顺序执行。例如:

var handlerNode = document.getElementById("handler");

dojo.event.connect(handlerNode,"handler");

dojo.event.connect(handlerNode,"handler2");

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读