2008 年 10 月 10 日
事件是用户与站点进行交互的基础。现在的浏览器采用的事件处理方法千差万别,为了屏蔽这些差异,Dojo 提供了统一的事件处理方法。开发人员可以使用 Dojo 的简单连接或者订阅/发布模式来进行事件处理,本系列 的这一期文章将对这些知识进行一一介绍。
事件是用户与浏览器交互的基础,用户在界面的操作产生事件,浏览器捕获事件后对用户作出反馈。 Ajax 技术通过引入异步调用使 web 应用的开发产生了革命性的变化,另一方面 Ajax 也使广大开发人员认识到用户和浏览器的交互可以如此精彩,Web 页面不再死板,开始鲜活起来,开发人员也不再厌恶编写 javascript. 的事件处理代码。在 web 页面中,事件一般作用于 DOM 树节点,所以有必要先了解 DOM 的事件模型,包括模型支持那些事件,如何处理 DOM 树结构上的节点的事件等。
<html>
<body>
<.. function sayHello() { alert("hello!"); }
</.. <input id="btn" type="button" nclick="sayHello()" value="hello" />
</body>
</html> |
清单 1 应该是最为 web 开发人员熟知的事件处理方式了,直接把事件处理函数和控件上的事件属性绑定起来。当用户点击 hello 按钮时,将调用 sayHello() 函数。当然也可以把事件处理函数的代码作为 onclick 的值,参见清单 2,使用这种方式时,onclick 对应的处理脚本应比较简单短小,在 onclick 后面写上一大串 javascript. 脚本可不是什么好主意。
<html>
<body>
<input id="btn" type="button" nclick="..:alert('hello');" value="hello" />
</body>
</html> |
另一种略微高级的方法是在控件之外绑定控件的事件处理函数,见清单 3 。
<html> <body> <input id="btn" type="button" value="hello" /> |