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 HashTable
Jan 22 Javascript
jQuery 遍历json数组的实现代码
Sep 22 Javascript
javascript实现动态侧边栏代码
Feb 19 Javascript
jquery 实现两级导航菜单附效果图
Mar 07 Javascript
jQuery中removeData()方法用法实例
Dec 27 Javascript
为何JS操作的href都是javascript:void(0);呢
Nov 12 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
Aug 24 Javascript
基于bootstrap的文件上传控件bootstrap fileinput
Dec 23 Javascript
jQuery插件form-validation-engine正则表达式操作示例
Feb 09 Javascript
浅谈jQuery中事情的动态绑定
Feb 12 Javascript
基于JS实现仿百度百家主页的轮播图效果
Mar 06 Javascript
如何在VUE中使用vue-awesome-swiper
Jan 04 Vue.js
使用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/06/22 PHP
Smarty3配置及入门语法
2017/02/22 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
PHP Ajax跨域问题解决方案代码实例
2020/08/01 PHP
JavaScript 编程引入命名空间的方法与代码
2007/08/13 Javascript
Javascript和Ajax中文乱码吐血版解决方案
2009/12/21 Javascript
aspx中利用js实现确认删除代码
2010/07/22 Javascript
jquery 鼠标滑动显示详情应用示例
2014/01/24 Javascript
NodeJS学习笔记之FS文件模块
2015/01/13 NodeJs
JavaScript获取URL汇总
2015/06/08 Javascript
javascript轻量级库createjs使用Easel实现拖拽效果
2016/02/19 Javascript
AngularJS中的按需加载ocLazyLoad示例
2017/01/11 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
jquery实现一个全局计时器(商城可用)
2017/06/30 jQuery
JS实现闭包中的沙箱模式示例
2017/09/07 Javascript
Vue 技巧之控制父类的 slot
2020/02/24 Javascript
js实现验证码功能
2020/07/24 Javascript
vue路由的配置和页面切换详解
2020/09/09 Javascript
[01:04:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第二场 1月31日
2021/03/11 DOTA
Django1.3添加app提示模块不存在的解决方法
2014/08/26 Python
使用paramiko远程执行命令、下发文件的实例
2017/10/01 Python
python操作列表的函数使用代码详解
2017/12/28 Python
对python中Matplotlib的坐标轴的坐标区间的设定实例讲解
2018/05/25 Python
Django实现分页显示效果
2019/10/31 Python
Python logging模块异步线程写日志实现过程解析
2020/06/30 Python
使用OpenCV实现道路车辆计数的使用方法
2020/07/15 Python
美国在线鞋类零售商:LifeStride
2019/06/09 全球购物
高中运动会入场词
2014/02/14 职场文书
同学会主持词
2014/03/18 职场文书
婚礼证婚人演讲稿
2014/09/13 职场文书
学习群众路线的心得体会
2014/11/05 职场文书
三方协议书
2015/01/27 职场文书
4S店收银员岗位职责
2015/04/07 职场文书
房地产销售助理岗位职责
2015/04/14 职场文书
《西门豹》教学反思
2016/02/23 职场文书
CSS3 制作的图片滚动效果
2021/04/14 HTML / CSS