事件绑定相关的方法:
一、使用addListener()方法
var button = Ext.get('btn'); button.addListener('click',hello1);//绑定事件处理函数 button.addListener('click',hello2);
二、ExtJS支持的自定义事件
//创建Person类 var Person = Ext.extend(Ext.util.Observable,{ constructor : function(name){ this.name = name; this.sayNum = 0; this.say = function(){ if(this.sayNum < 2){ this.sayNum += 1; alert('I am '+name); }else{ this.sayNum = 0;//触发自定义事件后计数器归零 this.fireEvent('onSay',this);//激发自定义事件 } } this.addEvents({//加入自定义事件 "onSay" : true }); } }); var per = new Person('tom',3);//创建对象 //为自定义事件绑定处理函数 per.addListener('onSay',function handler(){ alert('发生了自定义事件'); });
HTML代码如下:
<input type='button' value='say' onclick='per.say()'>
自定义事件的另一个例子:
//继承自Ext.util.Observable var Person = Ext.extend(Ext.util.Observable,{ constructor : function(name){ this.name = name; this.say = function(){ this.fireEvent('onSay',this.name);//激发自定义事件 } this.addEvents({//加入自定义事件 "onSay" : true }); } }); var per = new Person('tom');//创建对象 //为自定义事件绑定处理函数 per.addListener('onSay',function(name){ alert("I'am " + name); });
拦截器使用示例Observable.capture,与上面例子不同的地方是“var per = new Person('tom');//创建对象”代码之后的内容替换为:
per.addListener('onSay',handler);//为自定义事件绑定处理函数 function handler(){//事件处理函数 alert('发生了自定义事件'); } //为per对象添加拦截器 Ext.util.Observable.capture(per,captureFunction); //拦截函数 function captureFunction(eventName){ if(eventName == 'onSay'){//事件名称是onSay则返回false终止事件的执行 alert("拦截事件:“"+eventName+"”。"); return false; } return true; }
三、addManagedListener受管事件监听器:
function createFn(){ alert('新建'); } function openFn(){ alert('打开'); } function saveFn(){ alert('保存'); } Ext.create('Ext.toolbar.Toolbar',{//创建工具栏 renderTo: Ext.getBody(), bodyPadding: 5, width:300, items : [ {text:'新建',id:'createBtn',iconCls:'newIcon'}, {text:'打开',id:'openBtn',iconCls:'openIcon'}, {text:'保存',id:'saveBtn',iconCls:'saveIcon'}, {text:'销毁新建按钮',handler : function(){ //销毁新建按钮 Ext.getCmp('createBtn').destroy(); }} ] }); var createBtn = Ext.getCmp('createBtn'); createBtn.on('click',createFn); //以下的事件绑定将受createBtn组件是否销毁的控制,如果createBtn组件销毁 //了则事件绑定同时解除。 createBtn.addManagedListener(Ext.getCmp('openBtn'),'click',openFn); createBtn.addManagedListener(Ext.getCmp('saveBtn'),'click',saveFn);
四、relayEvents传播分发事件:
//创建Employee工人类 var Employee = Ext.extend(Ext.util.Observable,{ constructor : function(config){ this.name = config.name; this.eat = function(){ this.fireEvent('startEat',this);//激发开始吃饭事件 this.fireEvent('finishEat',this);//激发结束吃饭事件 } this.addEvents({//加入自定义事件 "startEat" : true,//开始吃饭事件 "finishEat" : true//结束吃饭事件 }); Employee.superclass.constructor.call(this, config) } }); //定义Waiter服务员类 var Waiter = Ext.extend(Ext.util.Observable,{ constructor : function(config){ Waiter.superclass.constructor.call(this, config); } }); //创建员工对象 var emp = new Employee({name:'tom'}); //为自定义事件绑定处理函数 emp.addListener('startEat',function(){ alert(this.name + '开始吃饭了。'); }); emp.addListener('finishEat',function (){ alert(this.name + '吃完饭,可以收拾盘子了。'); }); //创建服务员对象 var waiter = new Waiter(); //使服务员对象与员工对象的finishEat事件进行关联 //也就是说当员工对象的finishEat事件发生后,先执行自身的事件监听器, //然后事件会传递到服务员对象中,激发服务员对象的finishEat事件。 waiter.relayEvents(emp, ['finishEat']); waiter.on('finishEat',function(){ alert('服务员开始收拾盘子。'); });
HTML代码:
<input type='button' value='员工吃饭' onclick='emp.eat()'>
五、Ext.EventObject示例:
var btn = Ext.get('buttonTest'); btn.addListener('click',handler);//为click事件绑定处理函数 function handler(e){//事件处理函数 //获取事件发生时的x坐标 var x = e.getPageX(); //获取事件发生时的y坐标 var y = e.getPageY(); var msg = '事件发生坐标 : x='+x+' y='+y; alert(Ext.EventManager.getPageXY(e)); alert(msg); }
六、Ext.EventManager使用:
Ext.EventManager.addListener('btn','click',handler);//绑定处理函数
相关推荐
Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-...
ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0
bcprov-ext-jdk16-1.45.jar资源包 ,在进行JAVA的ECC椭圆算法调用时,需要用到的jar包
其中,“style-ext-html-webpack-plugin”是一个特别值得关注的插件,它专门针对HTML文件的内联样式进行了优化,以提高页面加载速度和用户体验。 **一、插件概述** “style-ext-html-webpack-plugin”是针对...
ext-ms-win-gdi-desktop-l1-1-0.dll 用于解决这个dll文件丢失问题,下载后将此文件放置在相关文件根目录下,即可解决丢失问题
ext-3.3.1ext-3.3.1ext-3.3.1ext-3.3.1ext-3.3.1ext-3.3.1
openwrt软路由
spketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-...
ext-base ext-4.1.1a-commercial
ext+jsp分页---好不好,大家说了算。下载不扣分,回帖加1分,欢迎下载,童叟无欺。ext+jsp分页---好不好,大家说了算。下载不扣分,回帖加1分,欢迎下载,童叟无欺。ext+jsp分页---好不好,大家说了算。下载不扣分,...
bcprov-ext-jdk15-1.46.jar
ext4magic-0.3.2-3.10.x86_64.rpm
官方版本,亲测可用
EXT-4.0.2a-gpl.zip是一个包含EXT文件系统的源代码压缩包,它代表了EXT文件系统的一个特定版本,即4.0.2a。EXT,全称为Extended File System,是Linux操作系统中广泛使用的日志式文件系统之一。EXT-4.0.2a-gpl.zip的...
bcprov-ext-jdk15on-146.jar
RSA加密算法,一个不错的包,我试过,可以用!
1.下载 bcprov-ext-jdk15on-160.jar,复制到jdk_home\jre\lib\ext 2.配置bcprov,在 jdk_home\jre\lib\security\目录中找到 java.security 在内容增加一行 security.provider.11=org.bouncycastle.jce.provider....
ExtDesigner-1.2.2-48破解版 超级好用
bcprov-ext-jdk16-146.jar
Extjs中实现国际化要用到的文件ext-lang-zh_CN.js和ext-lang-en.js