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 相关文章推荐
JavaScript isArray()函数判断对象类型的种种方法
Oct 11 Javascript
javascript学习笔记(十五) js间歇调用和超时调用
Jun 20 Javascript
HTML复选框和单选框 checkbox和radio事件介绍
Dec 12 Javascript
javascript限制用户只能输汉字中文的方法
Nov 20 Javascript
jQuery标签编辑插件Tagit使用指南
Apr 21 Javascript
javascript组合使用构造函数模式和原型模式实例
Jun 04 Javascript
JavaScript仿商城实现图片广告轮播实例代码
Feb 06 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
Aug 28 jQuery
浅谈webpack SplitChunksPlugin实用指南
Sep 17 Javascript
从源码里了解vue中的nextTick的使用
Nov 22 Javascript
vue项目中全局引入1个.scss文件的问题解决
Aug 01 Javascript
Vue组件通信入门之Provide和Inject机制
Dec 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获取一个变量的名字的方法
2014/09/05 PHP
一个经典实用的PHP图像处理类分享
2014/11/18 PHP
PHP中filter函数校验数据的方法详解
2015/07/31 PHP
Symfony2实现从数据库获取数据的方法小结
2016/03/18 PHP
php_pdo 预处理语句详解
2016/11/21 PHP
Jquery仿淘宝京东多条件筛选可自行结合ajax加载示例
2013/08/28 Javascript
验证手机号码的JS方法分享
2013/09/10 Javascript
js为什么不能正确处理小数运算?
2015/12/29 Javascript
JS判断是否手机或pad访问实现方法
2016/12/09 Javascript
详解PHP中pathinfo()函数导致的安全问题
2017/01/05 Javascript
javascript实现文件拖拽事件
2018/03/29 Javascript
如何将HTML字符转换为DOM节点并动态添加到文档中详解
2018/08/19 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
详解Axios统一错误处理与后置
2018/09/26 Javascript
vue环形进度条组件实例应用
2018/10/10 Javascript
详解使用angular框架离线你的应用(pwa指南)
2019/01/31 Javascript
javascript+css实现俄罗斯方块小游戏
2020/06/28 Javascript
python实现定时压缩指定文件夹发送邮件
2020/12/22 Python
python脚本当作Linux中的服务启动实现方法
2019/06/28 Python
Spring实战之使用util:命名空间简化配置操作示例
2019/12/09 Python
Python2 与Python3的版本区别实例分析
2020/03/30 Python
详解CSS3中border-image的使用
2015/07/18 HTML / CSS
Links of London官方网站:英国标志性的珠宝品牌
2017/04/09 全球购物
英国领先的男装设计师服装购物网站:Mainline Menswear
2018/02/04 全球购物
日本最大化妆品和美容产品的综合口碑网站:cosme shopping
2019/08/28 全球购物
介绍下WebSphere的安全性
2013/01/31 面试题
介绍一下Linux中的链接
2016/06/05 面试题
企业宣传方案
2014/03/04 职场文书
公司委托书怎么写
2014/08/02 职场文书
煤矿安全协议书
2014/08/20 职场文书
2014年辅导员工作总结
2014/11/18 职场文书
求职简历自我评价范文
2015/03/10 职场文书
2015年办税服务厅工作总结
2015/07/23 职场文书
Python打包为exe详细教程
2021/05/18 Python
Django使用channels + websocket打造在线聊天室
2021/05/20 Python
spring cloud 配置中心客户端启动遇到的问题
2021/09/25 Java/Android