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 相关文章推荐
window.addeventjs事件驱动函数集合addEvent等
Feb 19 Javascript
JavaScript中的细节分析
Jun 30 Javascript
EasyUI 中 MenuButton 的使用方法
Jul 14 Javascript
Extjs Label的 fieldLabel和html属性值对齐的方法
Jun 15 Javascript
Jquery日期选择datepicker插件用法实例分析
Jun 08 Javascript
javascript实现判断鼠标的状态
Jul 10 Javascript
AngularJS directive返回对象属性详解
Mar 28 Javascript
微信jssdk用法汇总
Jul 16 Javascript
基于iscroll.js实现下拉刷新和上拉加载效果
Nov 28 Javascript
JS多物体实现缓冲运动效果示例
Dec 20 Javascript
基于JS实现移动端向左滑动出现删除按钮功能
Feb 22 Javascript
node.js 用socket实现聊天的示例代码
Oct 17 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正则匹配汉字的方法介绍
2013/04/25 PHP
php获取表单中多个同名input元素的值
2014/03/20 PHP
php去除字符串中空字符的常用方法小结
2015/03/17 PHP
解决php-fpm.service not found问题的办法
2017/06/06 PHP
使用YII2框架实现微信公众号中表单提交功能
2017/09/04 PHP
jQuery登陆判断简单实现代码
2013/04/21 Javascript
跟我学习javascript的隐式强制转换
2015/11/16 Javascript
跟我学习javascript的prototype原型和原型链
2015/11/18 Javascript
轻松搞定jQuery.noConflict()
2016/02/15 Javascript
Angularjs 自定义服务的三种方式(推荐)
2016/08/02 Javascript
AngularJS中watch监听用法分析
2016/11/04 Javascript
Bootstrap CSS布局之列表
2016/12/15 Javascript
jQuery Masonry瀑布流插件使用方法详解
2017/01/18 Javascript
纯JS实现弹性导航条效果
2017/03/06 Javascript
NodeJs测试框架Mocha的安装与使用
2017/03/28 NodeJs
vue打包相关细节整理(小结)
2018/09/28 Javascript
node.js中ws模块创建服务端和客户端,网页WebSocket客户端
2019/03/06 Javascript
vue axios重复点击取消上一次请求封装的方法
2019/06/19 Javascript
python进阶教程之循环相关函数range、enumerate、zip
2014/08/30 Python
python使用多线程不断刷新网页的方法
2015/03/31 Python
python下MySQLdb用法实例分析
2015/06/08 Python
Python读取图片属性信息的实现方法
2016/09/11 Python
matplotlib savefig 保存图片大小的实例
2018/05/24 Python
详解python实现数据归一化处理的方式:(0,1)标准化
2019/07/17 Python
欧洲品牌瓷器餐具网上商店:Porzellantreff.de
2018/04/04 全球购物
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
金智子午JAVA面试题
2015/09/04 面试题
史上最全面的Java面试题汇总!
2015/02/03 面试题
财务管理职业生涯规划书
2014/02/26 职场文书
家长对孩子的评语
2014/04/18 职场文书
文体活动总结范文
2014/05/05 职场文书
2014年学生党支部工作总结
2014/12/20 职场文书
清明祭英烈活动总结
2015/05/11 职场文书
2015国庆节放假通知范文
2015/07/30 职场文书
Django使用echarts进行可视化展示的实践
2021/06/10 Python
Python学习开发之图形用户界面详解
2021/08/23 Python