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 相关文章推荐
js中的string.format函数代码
Aug 11 Javascript
JavaScript初学者应注意的七个细节小结
Jan 30 Javascript
jquery的冒泡事件的阻止与允许(三种实现方法)
Feb 01 Javascript
纯js和css实现渐变色包括静态渐变和动态渐变
May 29 Javascript
js给网页加上背景音乐及选择音效的方法
Mar 03 Javascript
JS实现黑色大气的二级导航菜单效果
Sep 18 Javascript
总结JavaScript的正则与其他语言的不同之处
Aug 25 Javascript
JS常用算法实现代码
Nov 14 Javascript
JavaScript中三种常见的排序方法
Feb 24 Javascript
详解node.js 下载图片的 2 种方式
Mar 02 Javascript
JavaScript 处理树数据结构的方法示例
Jun 16 Javascript
深入理解 TypeScript Reflect Metadata
Dec 12 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
3.从实例开始
2006/10/09 PHP
PHP+jQuery 注册模块的改进(三):更新到Smarty3.1
2014/10/14 PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
2016/04/04 PHP
php简单截取字符串代码示例
2016/10/19 PHP
javascript学习基础笔记之DOM对象操作
2011/11/03 Javascript
jQuery中:animated选择器用法实例
2014/12/29 Javascript
jQuery中:hidden选择器用法实例
2014/12/30 Javascript
你不需要jQuery(三) 新AJAX方法fetch()
2016/06/14 Javascript
jQuery 局部div刷新和全局刷新方法总结
2016/10/05 Javascript
js实现textarea限制输入字数
2017/02/13 Javascript
ES6新数据结构Map功能与用法示例
2017/03/31 Javascript
ES6(ECMAScript 6)新特性之模板字符串用法分析
2017/04/01 Javascript
微信小程序利用co处理异步流程的方法教程
2017/05/20 Javascript
Vue.js上下滚动加载组件的实例代码
2017/07/17 Javascript
JavaScript表单即时验证 验证不成功不能提交
2017/08/31 Javascript
JS实现显示当前日期的实例代码
2018/07/03 Javascript
vue自定v-model实现表单数据双向绑定问题
2018/09/03 Javascript
详解vscode中vue代码颜色插件
2018/10/11 Javascript
小程序实现日历左右滑动效果
2019/10/21 Javascript
vue 对axios get pust put delete封装的实例代码
2020/01/05 Javascript
python最小生成树kruskal与prim算法详解
2019/01/17 Python
学习python可以干什么
2019/02/26 Python
详解【python】str与json类型转换
2019/04/29 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
2019/08/09 Python
Python模块 _winreg操作注册表
2020/02/05 Python
美国购买舞会礼服网站:Couture Candy
2019/12/29 全球购物
意大利时尚精品店:Nugnes 1920
2020/02/10 全球购物
活动志愿者自荐信
2014/01/27 职场文书
老师对学生的寄语
2014/04/09 职场文书
2015年高考寄语或鼓励的话
2015/03/23 职场文书
法律意见书范文
2015/06/04 职场文书
运动会通讯稿200字
2015/07/20 职场文书
2016年寒假见闻
2015/10/10 职场文书
详解Python中__new__方法的作用
2022/03/31 Python
Win11更新失败并提示0xc1900101
2022/04/19 数码科技
Nginx报错104:Connection reset by peer问题的解决及分析
2022/07/23 Servers