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 相关文章推荐
Jquery中删除元素的实现代码
Dec 29 Javascript
JQuery的AJAX实现文件下载的小例子
May 15 Javascript
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
Dec 13 Javascript
AngularJS 文件上传控件 ng-file-upload详解
Jan 13 Javascript
bootstrap栅格系统示例代码分享
May 22 Javascript
JS基于对象的特性实现去除数组中重复项功能详解
Nov 17 Javascript
vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法
Jan 25 Javascript
VUEJS 2.0 子组件访问/调用父组件的实例
Feb 10 Javascript
微信小程序实现文字从右向左无限滚动
Nov 18 Javascript
详解Puppeteer前端自动化测试实践
Feb 21 Javascript
深入解析vue 源码目录及构建过程分析
Apr 24 Javascript
layui switch 开关监听 弹出确定状态转换的例子
Sep 21 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
第五节--克隆
2006/11/16 PHP
php 删除无限级目录与文件代码共享
2008/11/22 PHP
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
2011/07/03 PHP
解析CI即CodeIgniter框架在Nginx下的重写规则
2013/06/03 PHP
laravel 5 实现模板主题功能(续)
2015/03/02 PHP
CI框架文件上传类及图像处理类用法分析
2016/05/18 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
JAVASCRIPT keycode总结
2009/02/04 Javascript
jQuery 操作option的实现代码
2011/03/03 Javascript
JavaScript获取table中某一列的值的方法
2014/05/06 Javascript
javascript的动态加载、缓存、更新以及复用(一)
2014/06/09 Javascript
jquery获取checkbox的值并post提交
2015/01/14 Javascript
详解AngularJS实现表单验证
2015/12/10 Javascript
基于jquery实现图片上传本地预览功能
2016/01/08 Javascript
jQuery siblings()用法实例详解
2016/04/26 Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
2016/11/25 Javascript
TypeScript入门-接口
2017/03/30 Javascript
基于JavaScript实现报警器提示音效果
2017/10/27 Javascript
微信小程序实现tab切换效果
2017/11/21 Javascript
详解Angular-ui-BootStrap组件的解释以及使用
2018/07/13 Javascript
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
vue-cli配置flexible过程详解
2019/07/04 Javascript
微信小程序选择图片控件
2021/01/19 Javascript
python中urllib模块用法实例详解
2014/11/19 Python
python中子类调用父类函数的方法示例
2017/08/18 Python
python3实现爬取淘宝美食代码分享
2018/09/23 Python
Python 多线程其他属性以及继承Thread类详解
2019/08/28 Python
tensorflow 自定义损失函数示例代码
2020/02/05 Python
jupyter notebook 增加kernel教程
2020/04/10 Python
怀旧收藏品和经典纪念品:Betty’s Attic
2018/08/29 全球购物
小学作文评语大全
2014/04/21 职场文书
党课心得体会范文
2014/09/09 职场文书
学生检讨书怎么写
2014/10/09 职场文书
婚前协议书范本
2014/10/27 职场文书
2014年物业管理工作总结
2014/11/21 职场文书
MySql数据库触发器使用教程
2022/06/01 MySQL