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 相关文章推荐
精选的10款用于构建良好易用性网站的jQuery插件
Jan 23 Javascript
js写一个弹出层并锁屏效果实现代码
Dec 07 Javascript
HTTP 304错误的详细讲解
Nov 13 Javascript
javascript数组快速打乱重排的方法
Jan 02 Javascript
jquery设置text的值示例(设置文本框 DIV 表单值)
Jan 06 Javascript
JavaScript动态加载样式表的方法
Mar 21 Javascript
Knockout结合Bootstrap创建动态UI实现产品列表管理
Sep 14 Javascript
JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】
Apr 19 Javascript
利用ECharts.js画K线图的方法示例
Jan 10 Javascript
Webstorm2016使用技巧(SVN插件使用)
Oct 29 Javascript
Webpack按需加载打包chunk命名的方法
Sep 22 Javascript
基于JavaScript实现简单的轮播图
Mar 03 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
Laravel如何使用Redis共享Session
2018/02/23 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
2018/04/27 PHP
基于jQuery的遍历同id元素 并响应事件的代码
2012/06/14 Javascript
一个背景云变换js特效 鼠标移动背景云变化
2012/12/28 Javascript
学习Bootstrap组件之下拉菜单
2015/07/28 Javascript
jquery专业的导航菜单特效代码分享
2015/08/29 Javascript
js实现上传图片及时预览
2016/05/07 Javascript
JS转换HTML转义符的方法
2016/08/24 Javascript
JavaScript每天必学之事件
2016/09/18 Javascript
JS优化与惰性载入函数实例分析
2017/04/06 Javascript
Vue2.x中的父组件传递数据至子组件的方法
2017/05/01 Javascript
nodejs取得当前执行路径的方法
2018/05/13 NodeJs
vue-cli构建vue项目的步骤详解
2019/01/27 Javascript
微信小程序实现左滑动删除效果
2020/03/30 Javascript
简单的通用表达式求10乘阶示例
2014/03/03 Python
python中实现定制类的特殊方法总结
2014/09/28 Python
Python中的异常处理学习笔记
2015/01/28 Python
深入理解Javascript中的this关键字
2015/03/27 Python
python+matplotlib绘制旋转椭圆实例代码
2018/01/12 Python
python3.5 tkinter实现页面跳转
2018/01/30 Python
python实现寻找最长回文子序列的方法
2018/06/02 Python
详解python3中的真值测试
2018/08/13 Python
对Python3中bytes和HexStr之间的转换详解
2018/12/04 Python
对Python闭包与延迟绑定的方法详解
2019/01/07 Python
Django Rest framework解析器和渲染器详解
2019/07/25 Python
PyCharm 2020 激活到 2100 年的教程
2020/03/25 Python
西班牙香水和化妆品网上商店:Douglas
2017/10/29 全球购物
如何删除一个表里面的重复行
2013/07/13 面试题
会计电算化个人求职信范文
2014/01/24 职场文书
文字自荐书范文
2014/02/10 职场文书
土木工程求职信
2014/05/29 职场文书
关于晚自习早退的检讨书
2014/09/13 职场文书
学习党的群众路线教育实践活动心得体会范文
2014/11/03 职场文书
2014年中班下学期工作总结
2014/12/11 职场文书
反腐倡廉主题教育活动总结
2015/05/07 职场文书
Python中的min及返回最小值索引的操作
2021/05/10 Python