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监测ActiveX控件是否已经安装过的代码
Sep 02 Javascript
JSQL  一个 web DB 的封装
May 05 Javascript
JS调用页面表格导出excel示例代码
Mar 18 Javascript
JavaScript限定图片显示大小的方法
Mar 11 Javascript
跟我学习javascript的基本类型和引用类型
Nov 16 Javascript
ECMAScript6--解构
Mar 30 Javascript
微信小程序开发入门基础教程
Apr 19 Javascript
Angular指令之restict匹配模式的详解
Jul 27 Javascript
Angular实现响应式表单
Aug 04 Javascript
vue+webpack模拟后台数据的示例代码
Jul 26 Javascript
解决vue-quill-editor上传内容由于图片是base64的导致字符太长的问题
Aug 20 Javascript
详解easyui 切换主题皮肤
Apr 04 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 遍历数据表数据并列表横向排列的代码
2009/09/05 PHP
php gzip压缩输出的实现方法
2013/04/27 PHP
php中使用gd库实现远程图片下载实例
2015/05/12 PHP
PHP中Enum(枚举)用法实例详解
2015/12/07 PHP
Yii2实现log输出到file及database的方法
2016/11/12 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
2020/01/23 PHP
用JAVASCRIPT如何给&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;赋值
2007/04/20 Javascript
hover的用法及live的用法介绍(鼠标悬停效果)
2013/03/29 Javascript
基于jquery实现发送文章到手机的代码
2014/12/26 Javascript
javascript深拷贝(deepClone)详解
2016/08/24 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
2016/11/24 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
2016/11/25 Javascript
基于JavaScript实现下拉列表左右移动代码
2017/02/07 Javascript
jQuery排序插件tableSorter使用方法
2017/02/10 Javascript
canvas实现弧形可拖动进度条效果
2017/05/11 Javascript
layui分页效果实现代码
2017/05/19 Javascript
详解如何构建Angular项目目录结构
2017/07/13 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
vue实现某元素吸顶或固定位置显示(监听滚动事件)
2017/12/13 Javascript
微信小程序中遇到的iOS兼容性问题小结
2018/11/14 Javascript
vue使用Proxy实现双向绑定的方法示例
2019/03/20 Javascript
bootstrap datepicker的基本使用教程
2019/07/09 Javascript
原生JavaScript实现随机点名表
2021/01/14 Javascript
Python3利用Dlib19.7实现摄像头人脸识别的方法
2018/05/11 Python
Python爬虫框架Scrapy常用命令总结
2018/07/26 Python
python使用xlrd和xlwt读写Excel文件的实例代码
2018/09/05 Python
浅谈Python的list中的选取范围
2018/11/12 Python
Django实现随机图形验证码的示例
2020/10/15 Python
Python基于Socket实现简易多人聊天室的示例代码
2020/11/29 Python
python switch 实现多分支选择功能
2020/12/21 Python
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
家长会学生家长演讲稿
2013/12/29 职场文书
家长学校工作方案
2014/05/07 职场文书
技术岗位竞聘演讲稿
2014/05/16 职场文书
一年级数学上册复习计划
2015/01/17 职场文书
丧事酒宴答谢词
2015/09/30 职场文书