`

Extjs 组件的事件处理

    博客分类:
  • ext
ext 
阅读更多
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事件处理 ajax

    - 在ExtJs中,可以使用`on`方法来监听DOM元素或Ext组件的事件。例如,监听ID为'somelink'的元素的点击事件,可以这样写: ```javascript var el = Ext.get('somelink'); el.on('click', function() { alert('...

    ExtJS 事件处理 动态载入

    在深入探讨事件处理和动态载入这两个主题之前,我们先简单了解一下ExtJS的基础。 ExtJS 提供了一个完整的框架,包括丰富的UI组件、数据绑定机制、布局管理以及强大的事件模型。这使得开发者能够创建功能丰富的Web...

    ExtJS日期多选组件源码

    通过研究和理解"ExtJS日期多选组件源码",开发者可以深入学习ExtJS组件设计、事件处理、数据绑定等核心概念,并能进一步定制适合自己项目需求的日期选择组件。这样的组件对于提高开发效率和用户体验具有积极的意义。

    extjs 3.1 组件 使用

    通过阅读ExtJS的源码,我们可以学习到事件处理、数据绑定、布局管理等高级特性,从而更好地优化代码和解决问题。 最后,工具在ExtJS开发中也起着重要作用。例如,Sencha Animator可以帮助创建动画效果,Sencha ...

    Extjs树分页组件扩展

    在ExtJS中,树形(Tree)组件是一种用于展示层级数据的强大工具,它允许用户以树状结构浏览和操作数据。然而,在处理大量数据时,一次性加载所有节点可能导致页面响应变慢,这时就需要引入分页功能。"Extjs树分页...

    Extjs源码之--Ext事件机制/继承关系

    在“Extjs源码之--Ext事件机制/继承关系”中,我们将深入探讨EXTJS如何处理事件以及其类层次结构。EXTJS的事件处理主要由EventManager.js这个文件负责,它是EXTJS事件系统的基础。 首先,EXTJS的事件机制基于观察者...

    Ext编辑组件,方便编写extjs

    7. **性能优化**:由于ExtJS本身对大数据量处理有良好的优化,结合编辑组件,即使在大量数据下也能保持良好的性能。 8. **兼容性和扩展性**:与ExtJS的其他组件高度兼容,易于与其他功能结合使用。同时,该组件可能...

    Extjs 年月日时分秒组件

    5. **可扩展性**:由于ExtJS组件的高度模块化,我们可以添加额外的功能,比如禁用某些日期或时间,或者添加自定义的验证规则。 6. **布局管理**:组件可以轻松地与其他UI元素一起在布局中使用,如表格、面板或窗口...

    extjs 树型分页组件

    在EXTJS中,可以监听`beforeload`事件来预处理请求参数,或者监听`load`事件来处理加载后的数据。 5. 用户交互 树型分页组件提供了便捷的用户交互,如分页工具栏,允许用户切换页面或调整每页显示的节点数量。还...

    EXTJS 上传组件及示例

    开发者可以根据实际需求,通过调整配置、编写事件处理器以及利用EXTJS的其他组件和工具,打造出满足各种需求的文件上传功能。同时,要确保在使用过程中充分考虑安全性,确保应用的稳定性和用户数据的安全。

    extjs流程界面设计器参考_ExtJS工作流设计器_extjs工作流_extjs_

    ExtJS的事件系统使得绑定和处理这些事件变得简单。 7. **可视化编辑**:为了提高用户体验,设计器通常会提供撤销/重做、选择、复制/粘贴等可视化编辑功能。这些可以通过ExtJS的命令模式和组件方法实现。 8. **验证...

    EXTJS事件实例源码

    1. **事件监听与触发**:EXTJS中的每个组件都拥有自己的事件系统,可以通过`addListener`(或简写`on`)方法来监听事件,`fireEvent`方法来触发事件。例如: ```javascript var button = Ext.create('Ext.button....

    ExtJS 事件笔记

    本篇笔记将深入探讨ExtJS的事件处理,包括事件登记、事件对象、this的作用域以及ExtJS特有的事件管理方式。 1. **事件登记**: - **内联式登记**:在HTML元素中直接定义事件处理函数,如`onClick="popUp()"`。这种...

    EXTJS3.0多文件上传组件

    1. **EXTJS组件化编程**:理解EXTJS的组件模型,如何创建自定义组件,以及如何在应用中嵌入和配置这些组件。 2. **SWFUpload使用**:学习SWFUpload的基本用法,如设置参数、监听事件、处理回调函数等。 3. **Flash...

    ExtJS4.0图文实例——数据组件介绍及简单应用

    ExtJS是一种用于构建复杂Web应用程序的JavaScript库,它提供了丰富的UI控件、数据处理能力和高度可定制的组件,使开发者能够快速创建美观且功能强大的Web界面。随着版本的迭代,ExtJS4.0引入了一系列重大改进,特别...

    extjs时间日期选择组件

    5. 监听选择事件:当用户做出选择时,可以监听选择事件,执行相应的处理逻辑,如更新其他组件的状态或发送数据到服务器。 EXTJS的时间日期选择组件以其丰富的功能和高度可定制性,成为了开发人员处理日期和时间输入...

    extjs portal组件代码

    1. **Portlets**:Portlets是Portal中的基本单元,它们是可配置的、可拖动的、可调整大小的组件,可以包含任何EXTJS组件,如表格、面板、按钮等。Portlets之间可以通过拖放操作进行重新排列。 2. **Portal Column**...

    ExtJS编写的youtube视频播放组件 示例

    1. ExtJS组件系统,包括组件的生命周期、配置和事件处理。 2. YouTube JavaScript API的使用,包括创建播放器实例和处理播放事件。 3. 自定义组件和插件的开发,提升代码的复用性和可维护性。 4. 布局管理器的运用,...

    Extjs ComboBoxTree 下拉树组件

    总结来说,ExtJS ComboBoxTree是一个结合了下拉框和树形结构的组件,它提供了一种直观的方式来处理层级数据,并支持复选框选择,适用于需要展示复杂选择关系的场景。通过理解和使用此类组件,可以提升用户界面的交互...

    extjs组件介绍

    ### ExtJS组件介绍 #### 学习目标 1. 掌握Ext基本组件的用法 2. 掌握布局类的用法及其区别 ### 面板(Panel) 面板(`Panel`)是ExtJS中最基础且重要的组件之一,它构成了用户界面的核心结构。许多复杂的组件和...

Global site tag (gtag.js) - Google Analytics