事件是指一个特定的动作,这个动作可以针对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的事件机制,以及如何在一个基本的代码模型中实现它。首先,我们要理解事件在JavaScript和ExtJs中的核心概念。事件是用户与应用程序交互时发生的动作,例如点击按钮或输入数据。ExtJs...
在EXTJS这个强大的JavaScript框架中,事件机制是其核心组件之一,它允许组件之间进行通信和交互。在“Extjs源码之--Ext事件机制/继承关系”中,我们将深入探讨EXTJS如何处理事件以及其类层次结构。EXTJS的事件处理...
ExtJs 是一个强大的JavaScript库,专门用于构建富客户端应用程序。...通过这些事件处理机制,开发者可以创建出响应用户操作、实时更新数据的动态Web应用程序。在实际项目中,理解并灵活运用这些知识是至关重要的。
本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计进度条、设计工具栏和菜单栏、设计面板、设计表格、设计表单、设计数据表、...
ExtJS 提供了一个完整的框架,包括丰富的UI组件、数据绑定机制、布局管理以及强大的事件模型。这使得开发者能够创建功能丰富的Web应用,具有桌面级的用户体验。事件处理是ExtJS中非常关键的一部分,它允许用户与UI...
在EXTJS这个强大的JavaScript框架中,事件处理和模板机制是两个至关重要的概念,它们极大地提升了开发者构建用户界面的效率和代码的可维护性。本文将深入探讨EXTJS中的事件系统和模板机制,以及如何在实际开发中应用...
本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计进度条、设计工具栏和菜单栏、设计面板、设计表格、设计表单、设计数据表、...
- **事件处理(Event Handling)**:ExtJS事件机制使得组件间的交互变得简单,通过监听和触发事件来响应用户操作。 **开发工具** 开发ExtJS应用时,常用的工具有: 1. **浏览器开发者工具**:如Chrome DevTools或...
事件机制是ExtJS中的核心组成部分,它使得用户界面元素能够响应用户的交互行为。本篇笔记将深入探讨ExtJS的事件处理,包括事件登记、事件对象、this的作用域以及ExtJS特有的事件管理方式。 1. **事件登记**: - **...
ExtJS的事件和数据验证机制可以用于实现这些逻辑。 9. **集成与部署**:设计完成后,工作流需要与后端系统集成,执行实际的业务逻辑。这通常涉及API调用和数据交换,ExtJS的AJAX和Promise机制对此提供支持。 通过...
总结,重写Ext JS的Panel并添加click事件是一个常见的需求,通过继承Panel并使用事件监听机制,我们可以轻松实现这一功能。这不仅增强了Panel的功能,也使我们的应用更加灵活和可定制。记得在编写代码时,根据实际...
[07]EXTJS4.0的事件机制Event.001.zip (70.00M)[07]EXTJS4.0的事件机制Event.003.zip [07]EXTJS4.0的事件机制Event.002.zip 第八讲:extjs4.0的Ajax [08]EXTJS4.0的Ajax.003.zip (53.77M)[08]EXTJS4.0的Ajax....
ExtJs 4 用了一段时间了,今天研究了下ExtJs4的MVC机制,感觉还挺好,建议大家尝试,所以就写了一个demo,帮助那些对ExtJs还不是很懂,或者想用ExtJs4却又不知道怎么做好的朋友。。。多余话不说了大家如果有什么不...
在Extjs中推荐使用`Ext.onReady`事件来确保页面的DOM完全加载后再执行脚本,这样可以保证脚本执行的正确性。 #### 6. 元素操作与模板 - **DomHelper类**: 提供了一种简洁的方法来创建和操作DOM元素。 - **...
它提供了丰富的用户界面组件、数据绑定机制和强大的API,使开发者能够创建功能强大的、响应式的桌面和移动应用。7.6版本是ExtJS的一个重要更新,带来了诸多新特性、性能优化以及对现代浏览器和设备的更好支持。 SDK...
这涉及到事件监听和处理机制,以及如何通过JavaScript代码重写Panel的行为。 首先,了解ExtJS中的事件系统至关重要。事件系统是ExtJS框架的核心部分,它允许组件之间进行通信。在ExtJS中,每个组件都有自己的事件,...
EXTJS的主要特点包括高度可定制、响应式布局以及强大的数据绑定机制。 EXTJS中的图形组件是其核心功能之一,这些组件使得开发者能够轻松地在Web页面上展示各种图表,如折线图、柱状图、饼图、散点图等。这些图形...
ExtJS是一个基于JavaScript的开源前端框架,它提供了丰富的用户界面组件和数据处理机制,能够创建具有桌面应用程序般体验的Web应用。 ### ExtJS的基本功能和优势 ExtJS支持跨浏览器的控件,这意味着开发者不需要为...
EXTJS具有面向对象编程、完善的事件监听与响应机制、跨浏览器支持、丰富的可扩展控件支持、高效美观的图表和绘图组件等特点。 基于事件的编程是EXTJS的一个核心特点,它提供了一套良好的事件监听和响应机制。EXT....