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函数的4种调用方法详解
Apr 22 Javascript
js交换排序 冒泡排序算法(Javascript版)
Oct 04 Javascript
javascript抽象工厂模式详细说明
Dec 16 Javascript
浅谈javascript的分号的使用
May 12 Javascript
javascript图片切换综合实例(循环切换、顺序切换)
Jan 13 Javascript
Vue.js实现价格计算器功能
Mar 30 Javascript
vue-content-loader内容加载器的使用方法
Aug 05 Javascript
vue.js父子组件通信动态绑定的实例
Sep 28 Javascript
Vue项目部署的实现(阿里云+Nginx代理+PM2)
Mar 26 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
Oct 12 Javascript
javascript+Canvas实现画板功能
Jun 23 Javascript
vue cli 3.0通用打包配置代码,不分一二级目录
Sep 02 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与mysql建立连接并执行SQL语句的代码
2011/07/04 PHP
Yii2超好用的日期和时间组件(值得收藏)
2016/05/05 PHP
如何使用php等比例缩放图片
2016/10/12 PHP
PHP获取页面执行时间的方法(推荐)
2016/12/10 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
2012/10/11 Javascript
javascript仿qq界面的折叠菜单实现代码
2012/12/12 Javascript
setTimeout和setInterval的深入理解
2013/11/08 Javascript
jQuery中delegate与on的用法与区别示例介绍
2013/12/20 Javascript
JavaScript插件化开发教程 (二)
2015/01/27 Javascript
JavaScript控制listbox列表框的项目上下移动的方法
2015/03/18 Javascript
js比较日期大小的方法
2015/05/12 Javascript
js实现网页多级级联菜单代码
2015/08/20 Javascript
浅谈Javascript中Object与Function对象
2015/09/26 Javascript
JS中offset和匀速动画详解
2018/02/06 Javascript
vue小白入门教程
2018/04/02 Javascript
angularjs 动态从后台获取下拉框的值方法
2018/08/13 Javascript
浅谈js中的bind
2019/03/18 Javascript
Angular 2使用路由自定义弹出组件toast操作示例
2019/05/10 Javascript
浅谈Vue组件单元测试究竟测试什么
2020/02/05 Javascript
Javascript操作select控件代码实例
2020/02/14 Javascript
新手该如何学python怎么学好python?
2008/10/07 Python
使用python将mdb数据库文件导入postgresql数据库示例
2014/02/17 Python
python的即时标记项目练习笔记
2014/09/18 Python
教你用python3根据关键词爬取百度百科的内容
2016/08/18 Python
浅谈Python的垃圾回收机制
2016/12/17 Python
浅谈Python中range和xrange的区别
2017/12/20 Python
python如何从键盘获取输入实例
2020/06/18 Python
世界上最值得信赖的多日游在线市场:TourRadar
2018/07/20 全球购物
人事任命书怎么写
2014/06/05 职场文书
师范生免费教育协议书范本
2014/10/09 职场文书
学校运动会加油词
2015/07/18 职场文书
爱护环境建议书
2015/09/14 职场文书
关于环保的广播稿
2015/12/17 职场文书
健身房被搭讪?用python写了个小米计时器助人为乐
2021/06/08 Python
深入详解JS函数的柯里化
2021/06/09 Javascript