先看addListener也就是Ext里面的on方法
/*
* 注册事件函数,返回是否注册成功
* el : String/HTMLElement 一个html元素或其id,事件处理器将会被指定到其上
* eventName : String 需要监听的事件类型
* handler : Function 事件调用的处理函数。此函数将会被传递以下参数:
* *****evt : EventObject EventObject ,描述了事件。
*****t : Element Element ,它是事件的目标(target)。
注意:此项可能被用delegate选项过滤。
* ****o : Object 来自调用addListener时的选项对象。
* * 例子:
* el.addListener('click', this.onClick, this,
* { single: true, delay: 100, stopEvent : true, forumId: 4})
*/
addListener : function( el , eventName , fn ) {
/* *********************************************************
getDom : function( el ) {
if ( !el || !document ) {
return null;
}
return el.dom ? el.dom :
( typeof el == 'string' ? document.getElementById( el ) : el );
}
********************************************************* */
el = Ext.getDom( el );
// 参数检查
if ( !el || !fn ) {
return false;
}
// 如果是unload事件,那么直接添加在unloadListeners数组中,
//当window的onunload事件触发时执行
if ( "unload" == eventName ) {
unloadListeners[unloadListeners.length] = [
el , eventName , fn
];
return true;
}
// 封装函数,处理event变量不兼容的问题
/* getEvent : function( e ) {
var ev = e || window.event;
if ( !ev ) {
var c = this.getEvent.caller;
while ( c ) {
ev = c.arguments[0];
if ( ev && Event == ev.constructor ) {break;}
c = c.caller;
}
}
return ev;
} */
var wrappedFn = function( e ) {
return typeof Ext != 'undefined'
? fn( Ext.lib.Event.getEvent( e ) )
: false;
};
var li = [ el , eventName , fn , wrappedFn ];
var index = listeners.length;
listeners[index] = li;
// 下面语句就直接注册事件了
this.doAdd( el , eventName , wrappedFn , false );
return true;
}
分享到:
相关推荐
深入浅出ExtJS第2版+源码..1 下载EXT发布包 1 1.2 如何查看EXT自带的API和示例 1 1.3 为什么有些示例必须放在服务器上 才能看到效果 2 1.4 Hello World 2 1.4.1 直接使用下载的发布包 2 1.4.2 在项目中使用EXT...
### Ubuntu系统下安装Reviewboard详解 #### 一、概述 本文档将详细介绍如何在Ubuntu系统上安装并配置Reviewboard,一款流行的代码审查工具。通过本文档的学习,您将能够掌握安装过程中所需的关键步骤以及相关软件的...
2.3 典型ARM处理器简介.................................................................................................. 17 2.3.1 Atmel AT91RM9200..........................................................
- **4.2.4 S3C2410处理器详解**:深入分析了S3C2410这款嵌入式处理器。 - **4.3 嵌入式软件开发流程** - **4.3.1 嵌入式系统开发概述**:概述了嵌入式系统的开发过程。 - **4.3.2 嵌入式软件开发概述**:详细...
- **内容概览**: 该指南涵盖了详细的 ExtJS 框架使用方法、控件详细配置参数、属性、方法及事件介绍,以及如何与服务器端集成等高级话题。 - **适用人群**: 对于想要深入了解 ExtJS 并应用于实际项目中的开发者来说...
每个组件都有自己的配置选项、事件处理器和生命周期。 **3.2 常用组件** - **Panel**:最基本的容器组件,可以包含其他组件。 - **Button**:用于触发操作的标准按钮。 - **Grid**:用于显示表格数据。 - **Tree**...
### 嵌入式Linux系统开发之UBOOT详解 #### 一、嵌入式Linux的发展与特点 **1.1 发展历程** 嵌入式Linux系统近年来得到了快速发展,特别是随着开源运动的兴起,Linux因其免费且开放源码的特性成为了众多嵌入式应用...
ext3是在ext2的基础上发展起来的,增加了日志记录功能,提高了数据的安全性和完整性。 **9.4 ReiserFS** ReiserFS是一种高性能的日志型文件系统,旨在提高文件访问速度。 **9.5 JFFS2** JFFS2是专为闪存设计的...
### Linux启动过程详解 #### 一、Bootloader与引导机制 Linux系统的启动是一个复杂而精细的过程,本章节将深入探讨Linux系统从开机到用户登录这一过程中Bootloader的关键作用及其内部工作机制。 **1.1 Bootloader...
深入分析u-boot的源码有助于理解其内部工作机制。 **3.4.1 启动流程** 分析u-boot的启动流程,包括从上电到加载内核的整个过程。 **3.4.2 u-boot命令的执行代码分析** 详细解释了u-boot中各个命令的实现方式。 ...
### Linux嵌入式软件开发知识点概览 #### 第1章:Linux快速入门 - **1.1 嵌入式Linux基础** ...这些内容覆盖了Linux基础、命令使用、编程基础以及嵌入式系统的基础知识,为读者提供了全面深入的学习指南。
### 嵌入式学习步骤详解 #### 一、Linux基础 **1.1 安装Linux操作系统** - **知识点**: Linux发行版的选择(如Ubuntu、CentOS等),安装过程中的注意事项,图形化界面与命令行界面的区别。 - **技能**: 能够独立...