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的each方法使用示例分享
Mar 25 Javascript
Javascript学习笔记之数组的构造函数
Nov 23 Javascript
jquery实现点击向下展开菜单项(伸缩导航)效果
Aug 22 Javascript
详解angularjs结合pagination插件实现分页功能
Feb 10 Javascript
Node学习记录之cluster模块
May 31 Javascript
利用canvas实现的加载动画效果实例代码
Jul 05 Javascript
js 开发之autocomplete=&quot;off&quot;在chrom中失效的解决办法
Sep 28 Javascript
使用ngrok+express解决本地环境中微信接口调试问题
Feb 26 Javascript
vue组件实现弹出框点击显示隐藏效果
Oct 26 Javascript
JavaScript基于数组实现的栈与队列操作示例
Dec 22 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
Dec 25 Javascript
JS查找孩子节点简单示例
Jul 25 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
一首老MP3,致敬WAR3经典
2021/03/08 魔兽争霸
php学习之流程控制实现代码
2011/06/09 PHP
CentOS下PHP安装Oracle扩展
2015/02/15 PHP
PHP中Session可能会引起并发问题
2015/06/26 PHP
PHP文件类型检查及fileinfo模块安装使用详解
2019/05/09 PHP
javascript搜索框效果实现方法
2015/05/14 Javascript
JAVA四种基本排序方法实例总结
2015/07/24 Javascript
javascript如何写热点图
2015/12/08 Javascript
Angularjs中controller的三种写法分享
2016/09/21 Javascript
详解angular2采用自定义指令(Directive)方式加载jquery插件
2017/02/09 Javascript
Ajax异步获取html数据中包含js方法无效的解决方法
2017/02/20 Javascript
jQuery中.attr()和.data()的区别分析
2017/09/03 jQuery
vue.js移动端app之上拉加载以及下拉刷新实战
2017/09/11 Javascript
详解利用 Express 托管静态文件的方法
2017/09/18 Javascript
Vue.js划分组件的方法
2017/10/29 Javascript
mui框架 页面无法滚动的解决方法(推荐)
2018/01/25 Javascript
AngularJS实现的自定义过滤器简单示例
2019/02/02 Javascript
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
2019/03/29 Javascript
使用Node.js写一个代码生成器的方法步骤
2019/05/10 Javascript
基于Taro的微信小程序模板消息-获取formId功能模块封装实践
2019/07/15 Javascript
解决vue中的无限循环问题
2020/07/27 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
2020/11/06 Javascript
[01:12]快闪回顾DOTA2亚洲邀请赛(DAC) 静候2018新征程开启
2018/03/11 DOTA
Python3使用requests登录人人影视网站的方法
2016/05/11 Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
2020/05/11 Python
丝芙兰美国官网:SEPHORA美国
2016/08/03 全球购物
Lacoste(法国鳄鱼)加拿大官网:以标志性的POLO衫而闻名
2019/05/15 全球购物
linux面试题参考答案(6)
2016/06/23 面试题
战略合作协议书范本
2014/04/18 职场文书
关于教师节的演讲稿
2014/09/04 职场文书
2014年连锁店圣诞节活动方案
2014/12/09 职场文书
财务部岗位职责范本
2015/04/14 职场文书
员工离职证明范本
2015/06/12 职场文书
2016年教育局“我们的节日——端午节”主题活动总结
2016/04/01 职场文书
JavaScript原始值与包装对象的详细介绍
2021/05/11 Javascript
SpringBoot 拦截器妙用你真的了解吗
2021/07/01 Java/Android