事件是指一个特定的动作,这个动作可以针对HTML元素的,如keydown,keyup,mouseover, mouseout等,也可以是对于其它自定义的动作,如对Ajax异步请求的响应等。在ExtJS中,该如何处理呢?
1. 处理HTML元素的标准事件
HTML元素的标准事件是指mouseover、mousedown、click、blur、focus、change等能够直接对HTML元素发生的事件。在ExtJS中,这些事件的处理可以用如下的代码:
* 注册一个事件处理函数使用: Ext.get('myElement').on('click', myHandler, myScope) myElement是要注册的元素的ID,click是事件的名称(注意,和HTML元素中的声明onXXX不同,这里不需要on),myHandler 是处理函数的函数名称,myScope是一个可选的参数,指定处理函数绑定的对象,也就是处理函数的作用域,如果不提供这个参数,则是默认的 window。
* 撤销一个事件处理函数: Ext.get('myElement').un('click', myHandler, myScope) 参数的意义同上。
ExtJS会根据不同的浏览器进行相应的处理,根本不需要理会用户用的是什么浏览器。根据事件的不同,传给处理函数的参数也会不同,这个只能参考ExtJS的文档了,必要时还得参考源代码。
2. 处理自定义事件
在ExtJS中使用自定义事件,需要从Ext.util.Observable继承,示例代码如下:
Employee = function(name){
this.name = name;
this.addEvents({
"fired" : true,
"quit" : true
});
}
Ext.extend(Employee, Ext.util.Observable, { ... });
在这段代码中,定义了一个Employee类,定义了fired和quit两个事件。如何触发这两个事件呢,基类Ext.util.Observable提供了触发自定义事件的方法fireEvent(eventName, arg1, arg2, ... argn), eventName是要触发的时间的名称(不区分大小写),后面的参数arg1,arg2等是要传给事件处理函数的参数。用上面的Employee类做示例,触发quit事件:
this.fireEvent('quit', this);
这行代码将触发quit事件,并将Empolyee类的实例传给quit事件的处理函数,quit事件的订阅可以采用如下代码:
function myHandler1(empolyee){ ... }
function myHandler2(empolyee){ ... }
var emp = new Empolyee('tom');
emp.on('quit', myHandler1);
emp.on('quit', myHandler2);
在上面的代码中,为quit事件注册了两个处理函数(myHandler1与myHandler),当quit事件被激发时,将会依次调用myHandler1和myHandler2两个函数。
值得注意的是,不管是HTML元素的标准事件还是自定义事件,如果为某个时间注册了多个处理函数,如前面的例子,如果myHandler1返回false 的话,则会取消在myHandler1之后注册的处理函数的执行,即该事件被取消,从而停止继续执行该事件的处理函数,而这个返回值false会作为事件激发的结果,返回给empolyee,即:
var result = this.fireEvent('quit', this);
if (result === false) {
alert('event canceled'); //这里表示事件被某个处理函数取消
}
else {
alert('event complete'); // 这里表示事件执行完毕
}
通过Ext的自定义事件的机制,可以实现一对多的观察者模式,也可以实现一对一的绑定模式,这一点,在ExtJS的开发中是很重要的
分享到:
相关推荐
ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS...ExtJS快速入门 ExtJS快速入门 ExtJS快速入门ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门
ExtJS入门教程(超级详细).pdf
这篇博客“extjs入门之hello world”应该是引导初学者了解并开始使用ExtJS的基本步骤。由于描述部分是空的,我们将主要依据标题和标签来探讨相关知识点。 首先,让我们来看看“源码”这个标签。在学习任何编程技术...
extjs入门到精通,实例有简单到复杂,还有综合实力,下载即可运行,环境也是配好的,希望对你有帮助!
extjs入门学习,各个组件的使用,包括Observable、Observable、BoxComponent、Container、Panel、Viewport及Window...
《ExtJs入门实例详解》 ExtJs是一款强大的JavaScript前端框架,用于构建富客户端应用。它以其丰富的组件库、强大的数据绑定机制以及优雅的MVC设计模式而闻名。本文将围绕ExtJs2.0入门实例,重点讲解Ext.MessageBox...
在EXTJS这个强大的JavaScript框架中,事件机制是其核心组件之一,它允许组件之间进行通信和交互。在“Extjs源码之--Ext事件机制/继承关系”中,我们将深入探讨EXTJS如何处理事件以及其类层次结构。EXTJS的事件处理...
在ExtJS入门教程中,首先需要掌握的是如何获取ExtJS库文件。用户可以通过ExtJS官方网站提供的下载链接获取到最新的ExtJS库文件,下载的文件是一个压缩包,解压后可以看到包含的文件和目录。其中主要的文件包括...
### ExtJs 入门知识点详解 #### 一、ExtJs简介与核心概念 - **ExtJs**是一款基于JavaScript的企业级富客户端应用开发框架,它提供了一系列丰富的UI组件和功能强大的工具,使得开发者能够轻松地创建出高质量的Web...
在EXTJS入门教程中,我们将会了解到EXTJS的核心概念、组件的介绍与应用以及如何获取多个DOM节点并响应事件。 首先,EXTJS的核心是Ext,它提供了一系列的功能,比如获取多个DOM节点,响应事件等。在EXTJS中,DOM节点...
在EXTJS中,触发一个事件需要调用fireEvent方法,该方法具备如下的格式:fireEvent(String eventName,Object... args),其中,第一个参数为要触发事件的名称,之后可以跟有0个或多个参数,由开发者根据事件的需求...
ExtJS入门教程 一、开始EXTJS 二、组件的介绍 三、EXT核心
javascript 写的 用于在客户端创建丰富多彩的 web 应用程序界面 ExtJS 可以用来开发 RIA Rich Internet Application 富互联网应用系统 的 开源 AJAX 应用框架 使用的开源协 议是 GPL ExtJS 是一个用 javascript 写...
ExtJS入门实例、包含各种详细代码,非常适合初学者学习
ExtJs入门.ppt ExtJs入门.ppt 大家学习学习
Extjs入门实例chm版,非常好的Extjs学习资料
extjs入门教程 extjs入门教程介绍,GRID,json介绍
《EXTJS入门案例详解》 ...在学习EXTJS时,理解组件的属性、方法和事件是关键,同时熟悉数据绑定和数据存储也是必不可少的。通过实践这些入门案例,你可以逐步掌握EXTJS的基本用法,并为更深入的学习打下坚实的基础。