ExtJS提供了一套强大的事件处理机制,通过这些事件处理机制来响应用户的动作、监控控件状 态变化、更新控件视图信息、与服务器进行交互等等。事件统一由Ext.EventManager对象管理,与浏览器W3C标准事件对象Event相对 应,Ext封装了一个Ext.EventObject事件对象。支持事件处理的类(或接口)为Ext.util.Observable,凡是继承该类的组 件或类都支持往对象中添加事件处理及响应功能。
首先我们来看标准html中的事件处理,看下面的html代码:
<script> function a() { alert('some thing'); }</script><input id="btnAlert" type="button" onclick="a();" value="alert框" />
点击这个按钮则会触发onclick事件,并执行onclick事件处理函数中指定的代码,这里直接执行函数a中的代码,也即弹出一个简单的信息提示框。再简单修改一下上面的代码,内容如下:
<script>function a(){alert('some thing');}window.onload=function(){document.getElementById("btnAlert").onclick=a;}</script><input id="btnAlert" type="button" value="alert框" />
上面的代码在文档加载的时候,就直接对btnAlert的onclick赋值,非常清晰的指明了按钮btnAlert的onclick事件响应函数为a,注意这里a后面不能使用括号“()”。
ExtJS中组件的事件处理跟上面相似,看下面的代码:
<script>function a(){alert('some thing');}Ext.onReady(function(){ Ext.get("btnAlert").addListener("click",a); });</script><input id="btnAlert" type="button" value="alert框" />
Ext.get("btnAlert")得到一个与页面中按钮btnAlert关联的Ext.Element对象,可以直接调用该对象上的 addListener方法来给对象添加事件,同样实现前面的效果。在调用addListener 方法的代码中,第一个参数表示事件名称,第二个参数表示事件处理器或整个响应函数。
ExtJS支持事件队列,可以往对象的某一个事件中添加多个事件响应函数,看下面的代码:
Ext.onReady(function(){ Ext.get("btnAlert").on("click",a);Ext.get("btnAlert").on("click",a); });
addLinster方法的另外一个简写形式是on,由于调用了两次addListener方法,因此当点击按钮的时候会弹出两次信息。
当然,ExtJS还支持事件延迟处理或事件处理缓存等功能,比如下面的代码:
Ext.onReady(function(){ Ext.get("btnAlert").on("click",a,this,{delay:2000}); });
由于在调用addListener的时候传递指定的delay为2000,因此当用户点击按钮的时候,不会马上执行事件响应函数,而是在2000毫秒,也就是两秒后才会弹出提示信息框。
当然,在使用Ext的事件时,我们一般是直接在控件上事件,每一个控件包含哪些事件,在什么时候触发,触发时传递的参数等,在ExtJS项目的文档中 都有较为详细的说明。比如对于所有的组件Component,都包含一个beforedestroy事件,该事件会在Ext销毁这一个组件时触发,如果事 件响应函数返回false,则会取消组件的销毁操作。
Ext.onReady(function(){ var win=new Ext.Window({ title:"不能关闭的窗口", height:200, width:300 }); win.on("beforedestroy",function(obj){ alert("想关闭我,这是不可能的!"); obj.show(); return false; }); win.show();});
由于在窗口对象的beforedestroy事件响应函数返回值为false,因此执行这段程序,你会发现这个窗口将无法关闭。组件的事件监听器可以直接在组件的配置属性中直接声明,如下面的代码与前面实现的功能一样:
Ext.onReady(function(){ var win=new Ext.Window({ title:"不能关闭的窗口", height:200, width:300, listeners:{"beforedestroy":function(obj){ alert("想关闭我,这是不可能的!"); obj.show(); return false; }} }); win.show();});
了解了ExtJS中的基本事件处理及使用方法,就可以在你的应用中随心所欲的进行事件相关处理操作了。
关于ExtJS中事件处理中作用域、事件处理原理、给自定义的组件添加事件、处理相关的Ext.util.Observable及Ext.EventManager类详细介绍,请参考wlr.easyjf.com中的VIP文档《ExtJS中的事件处理详解》。
分享到:
相关推荐
EXT dojochina Ext事件是JavaScript库EXT JS中的一个重要概念,EXT JS是一个强大的前端开发框架,主要用于构建桌面级Web应用程序。这个压缩包可能包含了关于EXT JS事件处理的详细资料,特别是针对中国开发者...
EXTjs2 的treeNode 带有checkbox,可是API中,关于checkbox的事件就只有一个checkchange事件,所以写个方法传上来。
在实际项目中,开发者可以通过Maven或者Gradle等构建工具将EXT3.jar作为依赖引入,然后在Java代码中创建EXT组件并进行事件绑定,实现业务逻辑。 在网站开发中,EXT框架的使用可以提供强大的用户界面,例如,通过EXT...
适配器帮助EXT与不同的DOM操作和事件处理机制进行交互,使得在已有项目中集成EXT变得简单。 EXT还提供了一个强大的数据包,支持数据绑定和远程数据源的交互。这使得EXT组件能够动态地显示和操作来自服务器的数据,...
4. **事件处理**:绑定和解绑DOM事件,如`element.addListener('click', function(){...})`。 5. **尺寸和位置操作**:获取和设置元素的宽高、位置,以及调整大小和移动元素。 6. **动画效果**:提供动画效果,如...
了解如何绑定事件处理器和编写事件处理函数是EXT编程的重要技能。 5. **EXT JS API**:深入学习EXT的API文档至关重要。EXT提供了大量的类和方法,掌握它们将使你能够灵活地构建应用。例如,了解Store类用于管理数据...
EXT3.0登录实例是一个典型的EXT应用场景,通过它,开发者可以学习到EXT的基本组件用法、事件处理机制以及如何结合服务器进行数据交互。掌握这些知识点,对于理解EXT框架和开发Web应用具有重要意义。
在“Extjs源码之--Ext事件机制/继承关系”中,我们将深入探讨EXTJS如何处理事件以及其类层次结构。EXTJS的事件处理主要由EventManager.js这个文件负责,它是EXTJS事件系统的基础。 首先,EXTJS的事件机制基于观察者...
手册通常会详细介绍EXT的安装步骤、基本概念、组件使用方法以及事件处理等核心内容。通过阅读这份手册,新手可以理解EXT的架构,学习如何创建窗口、面板、表格等基本组件,以及如何通过布局管理器来组织这些组件。 ...
EXT2.0的学习路径建议从基本的Element操作和事件处理开始,逐步掌握Widgets的使用,然后深入到Ajax和数据管理,最后研究源码以提升对EXT框架的整体理解。通过实践和查阅相关资源,如推荐的中文网站和书籍,可以加快...
在EXT中,下拉框(ComboBox)的事件处理可以通过`on`方法绑定事件监听器。例如,当`bankFullName`下拉框发生改变时,触发`Ext.getCmp('bankTypeCd').setValue(Ext.getCmp('bankFullName').getValue());`,这使得`...
它们可能包括创建EXT应用的基本步骤、组件的使用方法、事件处理和响应机制等,是学习EXT的基础教材。 3. **EXT 中文帮助手册**:这是一份详细的辅助学习材料,可能包含EXT框架的高级特性,如AJAX通信、图表组件、...
通过阅读这份文档,你可以了解EXT的基本架构,学习如何创建窗口、面板、表单等常用UI元素,以及如何管理布局、处理事件和数据绑定。 EXT学习文档是进一步深入EXT的重要资料。文档中可能涵盖了EXT的高级特性,如数据...
"EXT核心API详解(五)-Ext.EventManager EventObject CompositeElement CompositeElementLite.txt"讲解了Ext的事件管理系统,包括EventManager和EventObject,它们优化了事件处理,使得跨浏览器的事件操作变得简单。...
`Ext.Element`是Ext Js中的基础元素操作类,它封装了对DOM元素的各种操作,如尺寸调整、样式修改、事件处理等。在`EXT核心API详解(三)-Ext.Element.txt`中,你将了解到如何选择元素、添加和移除CSS类、处理事件、...
Ext类是EXT API的基础,它定义了许多通用的方法和属性,如构造函数、事件处理、动画效果等。Ext对象还提供了一些全局函数,如Ext.util.Format用于字符串格式化,Ext.apply用于对象属性的复制,以及Ext.emptyFn作为空...
Ext中的事件 简述模板 模板(Templates)的函数 教你创建Ext UI控件 事件的处理 Ext中的继承 Ext的类设计 Ajax通讯 JSON处理方法 函数的原型扩展 组件的使用: Tab标签页 Ext 1.x中的布局 Grid组件初学 Grid的...
这个接口包含了拖放所需的所有基本功能,包括鼠标事件处理、拖动过程中的视觉反馈和目标检测等。在EXTJS 中,控件(如面板、按钮等)可以通过扩展这个接口或者使用已封装好的`Ext.dd.DD`和`Ext.dd.DDProxy`类来实现...