`
finally_m
  • 浏览: 69251 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(六) 事件处理

    博客分类:
  • AJAX
阅读更多

ExtJS提供了一套强大的事件处理机制,通过这些事件处理机制来响应用户的动作、监控控件状态变化、更新控件视图信息、与服务器进行交互等等。事件统一由Ext.EventManager对象管理,与浏览器W3C标准事件对象Event相对应,Ext封装了一个Ext.EventObject事件对象。支持事件处理的类(或接口)为Ext.util.Observable,凡是继承该类的组件或类都支持往对象中添加事件处理及响应功能。
首先我们来看标准html中的事件处理,看下面的html代码:
<script> 
 function fn(){  
  alert('onclick event'); 
 }
</script>
<input id="btnAlert" type="button" onclick="fn();" value="alert"/>
点击这个按钮则会触发onclick 事件,并执行onclick 事件处理函数中指定的代码,这里直接执行函数fn 中的代码,也即弹出一个简单的信息提示框。再简单修改一下上面的代码,内容如下:
<script>
 function fn(){
  alert('onclick event');
 }
 window.onload=function(){
  document.getElementById("btnAlert").onclick=fn;
 }
</script>


<input id="btnAlert" type="button" value="alert"/>

上面的代码在文档加载的时候,就直接对btnAlert 的onclick 赋值,非常清晰的指明了按钮btnAlert 的onclick 事件响应函数为fn,注意这里fn 后面不能使用括号“()”。
ExtJS 中组件的事件处理跟上面相似,看下面的代码:
<script>
 function fn(){
  alert('onclick event');
 }
 Ext.onReady(function(){
  Ext.get("btnAlert").addListener("click",fn);
 });
</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",fn);
 Ext.get("btnAlert").on("click",fn);
});
addLinster 方法的另外一个简写形式是on,由于调用了两次addListener 方法,因此当点击按钮的时候会弹出两次信息。
ExtJS 还支持事件延迟处理或事件处理缓存等功能,比如下面的代码:
Ext.onReady(function(){
 Ext.get("btnAlert").on("click",fn,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 中的基本事件处理及使用方法,就可以在你的应用中随心所欲的进行事件相关处理操作了。

分享到:
评论

相关推荐

    实验六 事件处理,触摸屏幕显示触摸时间

    本实验“实验六 事件处理,触摸屏幕显示触摸时间”着重于理解并实践Android中的触摸事件处理机制,以及如何在屏幕上实时显示用户的触摸持续时间。 Android事件处理主要依赖于View和 ViewGroup 的层次结构。当用户...

    QT的事件处理机制

    ### QT的事件处理机制 #### 一、概述 在探讨QT的事件处理机制之前,我们需要先理解事件在软件开发中的重要性。事件是程序与用户的交互桥梁,它们能够捕获用户的动作并触发相应的处理逻辑。在图形用户界面(GUI)应用...

    JavaGUI事件处理

    #### 六、事件处理三要点总结 - **定义监听器类**:实现对应的监听器接口,如`ActionListener`、`KeyListener`或`MouseListener`。 - **安装监听器**:使用组件的`addXyzListener`方法,将监听器与事件源关联。 - *...

    ASP.NET中的事件处理

    #### 六、HTML元素事件处理 在ASP.NET中,可以通过扩展`System.Web.UI.WebControls.WebControl`类来自定义控件并处理HTML元素上的事件。具体来说,可以在`AddAttributesToRender`方法中添加事件处理逻辑。例如,...

    java事件处理机制.pdf

    ### Java事件处理机制详解 #### 一、事件处理机制概览 在Java中,图形用户界面(GUI)的应用程序需要能够响应用户的输入行为,比如按键、鼠标点击等。这些用户的行为被视作“事件”,而应用程序则需要具备一定的机制...

    JavaFX2.x事件处理

    ### JavaFX2.x事件处理详解 #### 一、引言 在JavaFX应用程序开发中,事件处理是一项核心技能。良好的事件处理机制不仅能够提升用户体验,还能显著提高程序的响应性和功能性。本文将深入探讨JavaFX2.x版本中的事件...

    第3章+JavaScript事件处理.pdf

    ### JavaScript事件处理详解 #### 一、事件与事件处理概览 在JavaScript编程中,**事件**被视为用户与网页互动的桥梁,它们涵盖了从简单的鼠标移动到复杂的拖拽操作等一系列行为。事件处理则是指通过JavaScript...

    JAVA布局管理器及事件代码处理

    “第6章”可能指的是某教材或教程的第六章,内容可能涉及更深入的Java GUI编程,比如高级布局管理、自定义组件或复杂的事件处理。 总的来说,这个压缩包提供的学习材料可以帮助初学者理解Java GUI编程的基础,包括...

    Remoting事件处理全接触

    ### Remoting事件处理详解 #### 一、引言 在.NET框架中,Remoting作为一种分布式对象通信机制,允许跨进程、跨计算机甚至跨网络的应用程序组件进行通信。Remoting提供了丰富的功能来支持复杂的分布式场景,其中...

    android事件处理

    ### Android事件处理详解 #### 一、Android事件处理概述 Android事件处理机制是开发者与用户交互的核心技术之一。无论是在桌面应用还是移动设备上开发应用,都需要处理用户的输入行为,如点击、滑动等,这些行为被...

    C#事件处理.txt

    ### C#中的事件处理 #### 一、基础知识 在C#中,事件是.NET框架提供的一种机制,用于处理对象间的通知通信。一个对象可以“触发”事件,而其他对象则可以订阅这些事件来响应特定的操作。事件处理的核心概念包括:...

    复杂事件处理(Complex Event Processing)的思考和分析

    六、事件处理的实现:规则引擎 规则引擎是复杂事件处理的核心组件之一,负责对事件进行识别、分类和处理。规则引擎可以使用非过程语言的声明型规则语言和状态机模型来描述事件处理规则。规则引擎可以实时处理大量的...

    android中的事件处理

    在Android开发中,事件处理是构建用户界面时不可或缺的一部分,它允许应用程序响应用户的操作和系统的各种事件。Android事件处理机制主要包括两种方式:监听器(Listener)模式和消息队列(Message Queue)。本篇...

    C#处理事件的过程

    本文将详细解析C#处理事件的六个关键步骤,帮助开发者深入理解事件处理机制。 1. **声明事件**: 在C#中,事件通常作为类的私有成员来声明,使用`event`关键字。事件可以是委托类型,它定义了事件触发时调用的方法的...

    JavaSript所有事件处理(基本上常用的)

    ### JavaScript事件处理详解 #### 一、概述 JavaScript 作为一种广泛使用的编程语言,在网页开发中扮演着重要角色。其中,事件处理是实现交互性的重要手段之一。本文将详细介绍JavaScript中的各种事件及其应用场景...

    某大厂应急响应事件标准处理流程

    某大厂应急响应事件标准处理流程涵盖了事件确认、事件抑制、事件处理、原因分析、提交报告和结束跟踪六个阶段,每个阶段都有其特定的处理流程和相关知识点。只有通过标准化的处理流程,才能确保安全事件的快速响应和...

    第8章 JSF事件处理(熊)课件及示例程序

    本章重点讨论JSF中的事件处理机制,这是理解JSF应用程序工作原理的关键部分。 JSF事件处理主要涉及两个核心概念:事件和监听器。事件在JSF中是组件之间通信的方式,当组件的状态发生改变或者执行特定操作时,会触发...

    信息安全事件应急处理预案.pdf

    六、信息安全事件应急处理预案的实施和评估 信息安全事件应急处理预案的实施和评估包括: 1. 应急处理计划的制定和实施 2. 应急处理预案的演练和测试 3. 应急处理预案的评估和改进 七、结论 信息安全事件应急...

    项目教学法的设计——以java事件处理机制为例.pdf

    项目教学法的设计——以java事件处理机制为例 在计算机科学和技术教育中,项目教学法是一种非常重要的教学方法之一。它可以让学生更好地理解和掌握知识,并提高学生的实践能力和解决问题的能力。下面,我们将通过...

Global site tag (gtag.js) - Google Analytics