JS注册/移除事件处理程序(ExtJS应用程序设计实战)


Posted in Javascript onMay 07, 2013

在设计ExtJS应用程序时最常做的事情就是注册事件处理程序,因为在ExtJS的世界里,几乎完全由时间组成。因此,ExtJS的设计者使注册事件变得非常容易(同时还提供了非常不容易的方式任你选择)——on/un,也就是上与下两种方式,或是addListener与removeListener,Element的所有子类都可以使用。例如有一个<div/>希望在用户按下时能够给予简单的反馈:
<divid="happyDiv"class="happyStyle"/>
如何替这个<div/>注册鼠标单击事件呢?首先必须取得这个div的Element实例:
varhappyDiv=Ext.get('happyDiv');
然后是定义事件处理程序:

varclickHandler=function(event,eventTarget){ 
Ext.MessageBox.alert("Click","Youclicked:"+eventTarget.id); 
}

再用on()将事件处理函数与Element实例连接起来:
happyDiv.on('click',clickHandler);

程序执行时,单击<div/>会出现图3-15所示的结果。JS注册/移除事件处理程序(ExtJS应用程序设计实战)
很简单,对吧?示例文件为ch03/event_demo.html。如果要移除这个事件处理程序,只需要把on()改为un()即可。移除时没有对应click事件的事件处理程序也没有关系,底层的EventManager会自行判断。事件处理程序被调用时会接收三个参数——event、eventTarget和optionObj,示例中只用到两个,第三个参数会在讨论EventManager时加以说明。这里先将焦点放在event与eventTarget上,event的类型是Ext.Event,eventTarget则是HTML元素。浏览器在用户按下<div/>时触发click事件并且调用clickHanlder(),对于clickHanlder()而言,接收到的event就是浏览器触发的click事件。evnetTarget就是事件目标,也就是<div/>,eventTarget.id的值就是“happyDiv”。至于事件的根类,应该去哪里寻找呢?答案
Javascript 相关文章推荐
斜45度寻路实现函数
Aug 20 Javascript
firefox下input type=&quot;file&quot;的size是多大
Oct 24 Javascript
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
Apr 17 Javascript
Jquery多选框互相内容交换的实例代码
Jul 04 Javascript
JavaScript中的函数模式详解
Feb 11 Javascript
jQuery Ajax中的事件详细介绍
Apr 16 Javascript
JavaScript中length属性的使用方法
Jun 05 Javascript
使用javascript将时间转换成今天,昨天,前天等格式
Jun 25 Javascript
再JavaScript的jQuery库中编写动画效果的指南
Aug 13 Javascript
AngularJS之自定义服务详解(factory、service、provider)
Apr 14 Javascript
使用webpack4编译并压缩ES6代码的方法示例
Apr 24 Javascript
如何利用JS将手机号中间四位变成*号
Sep 29 Javascript
使用Math.floor与Math.random取随机整数的方法详解
May 07 #Javascript
基于JavaScript 类的使用详解
May 07 #Javascript
解读JavaScript中 For, While与递归的用法
May 07 #Javascript
JS Pro-深入面向对象的程序设计之继承的详解
May 07 #Javascript
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
May 07 #Javascript
基于JavaScript实现继承机制之构造函数+原型链混合方式的使用详解
May 07 #Javascript
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
May 07 #Javascript
You might like
PHP的中问验证码
2006/11/25 PHP
判断是否为指定长度内字符串的php函数
2010/02/16 PHP
php 文件缓存函数
2011/10/08 PHP
thinkphp模板输出技巧汇总
2014/11/24 PHP
php中解析带中文字符的url函数分享
2015/01/20 PHP
php include类文件超时问题处理
2015/02/06 PHP
CodeIgniter配置之database.php用法实例分析
2016/01/20 PHP
简单概括PHP的字符串中单引号与双引号的区别
2016/05/07 PHP
php可变长参数处理函数详解
2017/02/22 PHP
form自动提交实例讲解
2017/07/10 PHP
PhpSpreadsheet设置单元格常用操作汇总
2020/11/13 PHP
jQuery.Validate 使用笔记(jQuery Validation范例 )
2010/06/25 Javascript
js中top/parent/frame概述及案例应用
2013/02/06 Javascript
JS定时刷新页面及跳转页面的方法
2013/07/04 Javascript
Extjs4实现两个GridPanel之间数据拖拽功能具体方法
2013/11/21 Javascript
js数组循环遍历数组内所有元素的方法
2014/01/18 Javascript
angularjs下拉框空白的解决办法
2017/06/20 Javascript
基于JavaScript实现表格滚动分页
2017/11/22 Javascript
微信小程序中添加客服按钮contact-button功能
2018/04/27 Javascript
jQuery pagination分页示例详解
2018/10/23 jQuery
详解Node.js一行命令上传本地文件到服务器
2019/04/22 Javascript
细说Vue组件的服务器端渲染的过程
2019/05/30 Javascript
Python中的choice()方法使用详解
2015/05/15 Python
python提取字典key列表的方法
2015/07/11 Python
简单了解python 生成器 列表推导式 生成器表达式
2019/08/22 Python
MYSQL基础面试题
2012/05/13 面试题
如何通过jdbc调用存储过程
2012/04/19 面试题
机械工程师求职自我评价
2013/09/23 职场文书
大四学生思想汇报
2014/01/13 职场文书
入党自荐书范文
2014/03/09 职场文书
公安学专业求职信
2014/07/27 职场文书
幼儿教师自我剖析材料
2014/09/29 职场文书
2014年全国法制宣传日宣传活动方案
2014/11/02 职场文书
MySQL8.0.24版本Release Note的一些改进点
2021/04/22 MySQL
jdbc使用PreparedStatement批量插入数据的方法
2021/04/27 MySQL