`
zengshaotao
  • 浏览: 777431 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

事件绑定

 
阅读更多

一、addListener方法 

Javascript代码  收藏代码
  1. var button = Ext.get('btn');  
  2. button.addListener('click',hello1);//绑定事件处理函数  
  3. button.addListener('click',hello2);  



二、ExtJS支持的自定义事件 

Javascript代码  收藏代码
  1. //创建Person类  
  2. var Person = Ext.extend(Ext.util.Observable,{  
  3.     constructor : function(name){  
  4.        this.name = name;  
  5.        this.sayNum = 0;  
  6.        this.say = function(){  
  7.             if(this.sayNum < 2){  
  8.                 this.sayNum += 1;  
  9.                 alert('I am '+name);  
  10.             }else{  
  11.                 this.sayNum = 0;//触发自定义事件后计数器归零  
  12.                 this.fireEvent('onSay',this);//激发自定义事件  
  13.             }  
  14.        }  
  15.        this.addEvents({//加入自定义事件  
  16.           "onSay" : true  
  17.        });  
  18.     }  
  19. });  
  20. var per = new Person('tom',3);//创建对象  
  21. //为自定义事件绑定处理函数  
  22. per.addListener('onSay',function handler(){  
  23.     alert('发生了自定义事件');  
  24. });  
Html代码  收藏代码
  1. <input type='button' value='say' onclick='per.say()'>  


自定义事件的另外一个例子: 

Javascript代码  收藏代码
  1. //继承自Ext.util.Observable  
  2. var Person = Ext.extend(Ext.util.Observable,{  
  3.     constructor : function(name){  
  4.        this.name = name;  
  5.        this.say = function(){  
  6.             this.fireEvent('onSay',this.name);//激发自定义事件  
  7.        }  
  8.        this.addEvents({//加入自定义事件  
  9.           "onSay" : true  
  10.        });  
  11.     }  
  12. });  
  13. var per = new Person('tom');//创建对象  
  14.   
  15. //为自定义事件绑定处理函数  
  16. per.addListener('onSay',function(name){  
  17.     alert("I'am " + name);  
  18. });  


拦截器使用示例Observable.capture,与上面例子不同的地方是“var per = new Person('tom');//创建对象”代码之后的内容替换为: 

Javascript代码  收藏代码
  1. per.addListener('onSay',handler);//为自定义事件绑定处理函数  
  2. function handler(){//事件处理函数  
  3.     alert('发生了自定义事件');  
  4. }  
  5. //为per对象添加拦截器  
  6. Ext.util.Observable.capture(per,captureFunction);  
  7. //拦截函数  
  8. function captureFunction(eventName){  
  9.     if(eventName == 'onSay'){//事件名称是onSay则返回false终止事件的执行  
  10.         alert("拦截事件:“"+eventName+"”。");  
  11.         return false;  
  12.     }  
  13.     return true;  
  14. }  



三、addManagedListener受管事件监听器: 

Javascript代码  收藏代码
  1. function createFn(){  
  2.     alert('新建');  
  3. }  
  4. function openFn(){  
  5.     alert('打开');  
  6. }  
  7. function saveFn(){  
  8.     alert('保存');  
  9. }  
  10. Ext.create('Ext.toolbar.Toolbar',{//创建工具栏  
  11.     renderTo: Ext.getBody(),  
  12.     bodyPadding: 5,  
  13.     width:300,  
  14.     items : [  
  15.         {text:'新建',id:'createBtn',iconCls:'newIcon'},  
  16.         {text:'打开',id:'openBtn',iconCls:'openIcon'},  
  17.         {text:'保存',id:'saveBtn',iconCls:'saveIcon'},  
  18.         {text:'销毁新建按钮',handler : function(){  
  19.             //销毁新建按钮  
  20.             Ext.getCmp('createBtn').destroy();  
  21.         }}  
  22.     ]  
  23. });  
  24. var createBtn = Ext.getCmp('createBtn');  
  25. createBtn.on('click',createFn);  
  26. //以下的事件绑定将受createBtn组件是否销毁的控制,如果createBtn组件销毁  
  27. //了则事件绑定同时解除。  
  28. createBtn.addManagedListener(Ext.getCmp('openBtn'),'click',openFn);  
  29. createBtn.addManagedListener(Ext.getCmp('saveBtn'),'click',saveFn);  



四、relayEvents传播分发事件: 

Javascript代码  收藏代码
  1. //创建Employee工人类  
  2. var Employee = Ext.extend(Ext.util.Observable,{  
  3.     constructor : function(config){  
  4.        this.name = config.name;  
  5.        this.eat = function(){  
  6.             this.fireEvent('startEat',this);//激发开始吃饭事件  
  7.             this.fireEvent('finishEat',this);//激发结束吃饭事件  
  8.        }  
  9.        this.addEvents({//加入自定义事件  
  10.           "startEat" : true,//开始吃饭事件  
  11.           "finishEat" : true//结束吃饭事件  
  12.        });  
  13.        Employee.superclass.constructor.call(this, config)  
  14.     }  
  15. });  
  16.   
  17. //定义Waiter服务员类  
  18. var Waiter = Ext.extend(Ext.util.Observable,{  
  19.     constructor : function(config){  
  20.         Waiter.superclass.constructor.call(this, config);  
  21.     }  
  22. });  
  23. //创建员工对象  
  24. var emp = new Employee({name:'tom'});  
  25. //为自定义事件绑定处理函数  
  26. emp.addListener('startEat',function(){  
  27.     alert(this.name + '开始吃饭了。');  
  28. });  
  29. emp.addListener('finishEat',function (){  
  30.     alert(this.name + '吃完饭,可以收拾盘子了。');  
  31. });  
  32. //创建服务员对象  
  33. var waiter = new Waiter();  
  34. //使服务员对象与员工对象的finishEat事件进行关联  
  35. //也就是说当员工对象的finishEat事件发生后,先执行自身的事件监听器,  
  36. //然后事件会传递到服务员对象中,激发服务员对象的finishEat事件。  
  37. waiter.relayEvents(emp, ['finishEat']);  
  38. waiter.on('finishEat',function(){  
  39.     alert('服务员开始收拾盘子。');  
  40. });  
Html代码  收藏代码
  1. <input type='button' value='员工吃饭' onclick='emp.eat()'>  



五、Ext.EventObject示例 

Javascript代码  收藏代码
  1. var btn = Ext.get('buttonTest');  
  2. btn.addListener('click',handler);//为click事件绑定处理函数  
  3. function handler(e){//事件处理函数  
  4.     //获取事件发生时的x坐标  
  5.     var x = e.getPageX();  
  6.     //获取事件发生时的y坐标  
  7.     var y = e.getPageY();  
  8.     var msg = '事件发生坐标 : x='+x+' y='+y;  
  9.     alert(Ext.EventManager.getPageXY(e));  
  10.     alert(msg);  
  11. }  



六、Ext.EventManager使用 

Javascript代码  收藏代码
  1. Ext.EventManager.addListener('btn','click',handler);//绑定处理函数  
分享到:
评论

相关推荐

    WPF实现MVVM的事件绑定

    WPF实现MVVM的事件绑定的两种非常规方式。 参考博客:https://blog.csdn.net/IQQQQU/article/details/86530285 1、重写InvokeCommandAction来扩充返回的参数 2、运用Behavior来实现事件,可以通过两种方式来获取...

    WPF纯MVVM事件绑定+事件参数 完美示例

    在本文中,我们将深入探讨如何在WPF(Windows Presentation Foundation)环境中使用纯MVVM(Model-View-ViewModel)模式进行事件绑定,并获取事件参数。MVVM是一种流行的设计模式,它将用户界面(View)、业务逻辑...

    WPF 数据绑定 命令绑定 事件绑定 View和ViewModel的通信 MVVM模式

    本主题将深入探讨WPF中的数据绑定、命令绑定以及事件绑定,同时讲解View与ViewModel之间的通信,以展示MVVM模式的核心原理和实践。 ### 数据绑定 数据绑定是WPF中一个强大的特性,允许UI元素(View)直接与数据源...

    JavaScript 事件处理 事件绑定 示例代码

    事件绑定 示例代码JavaScript 事件处理 事件绑定 示例代码JavaScript 事件处理 事件绑定 示例代码JavaScript 事件处理 事件绑定 示例代码JavaScript 事件处理 事件绑定 示例代码JavaScript 事件处理 事件绑定 示例...

    C#移除所有事件绑定的方法

    事件绑定通常涉及订阅和取消订阅事件。然而,在某些情况下,我们可能需要一次性移除所有事件绑定,例如在对象销毁或重置状态时。本文将深入探讨如何在C#中实现这一功能。 首先,我们需要理解C#中的事件机制。事件是...

    将JavaScript事件绑定到ASP.NET对象

    在ASP.NET框架中,JavaScript事件绑定是将客户端脚本与服务器端控件相结合,以实现动态交互和优化用户体验的关键技术。尽管ASP.NET提供了丰富的服务器端功能,但JavaScript在处理页面上的实时交互和验证等方面具有...

    jquer事件绑定

    ### jquer事件绑定 在前端开发领域,jQuery作为一款优秀的JavaScript库,极大地方便了开发者进行DOM操作、AJAX交互以及事件处理等操作。本文将详细介绍如何使用jQuery进行事件绑定,特别是通过`bind()`方法来实现...

    解决关于事件绑定的兼容

    解决关于事件绑定的兼容,有利于代码的开发和维护,减少代码量

    微信小程序 页面跳转事件绑定的实例详解

    微信小程序 页面跳转事件绑定的实例详解 什么是事件 事件是视图层到逻辑层的通讯方式。 事件可以将用户的行为反馈到逻辑层进行处理。 事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数...

    DataBinding Demo 事件绑定

    本文将深入探讨DataBinding库中的事件绑定功能,帮助你理解如何利用这一特性提升应用的开发效率。 1. **什么是DataBinding** DataBinding是Android SDK中的一个库,它允许开发者在XML布局文件中直接绑定数据到...

    JavaScript 事件绑定及深入

    本文将详细介绍事件绑定的方式,包括传统事件绑定和现代事件绑定,以及在事件绑定过程中可能遇到的问题和解决方案。 ### 传统事件绑定 在JavaScript发展早期,事件绑定通常采用内联模型或脚本模型。内联模型是指在...

    jquery事件绑定例子

    本篇文章将深入探讨jQuery中的事件绑定机制,以及如何使用它来处理用户交互。首先,我们要理解什么是事件和事件绑定。 事件是用户与网页交互时触发的动作,如点击按钮、滚动页面或填写表单。事件绑定则是将函数(或...

    事件绑定和自定义属性

    在IT领域,事件绑定和自定义属性是两个关键概念,特别是在构建交互式用户界面时。本文将深入探讨这两个概念,并结合源码分析和工具应用,为开发者提供更全面的理解。 首先,我们来看“事件绑定”。在编程中,事件是...

    js回车事件绑定.txt

    ### JavaScript回车事件绑定知识点详解 #### 一、概述 在Web开发中,我们经常会遇到需要监听用户输入的情况,特别是当用户按下特定按键时触发某些功能。其中,“回车键”(Enter键)是一个非常常见的触发条件。...

    layui动态绑定事件的方法

    首先,我们需要了解动态创建DOM元素后,原有的事件绑定可能不会生效。这是因为事件监听器是在元素创建时就绑定的,而对于后来添加到DOM中的元素,监听器并未注册。为了解决这个问题,我们通常会采用事件委托的方式。...

    详解Canvas事件绑定

    【Canvas事件绑定详解】 在HTML5中,Canvas提供了一个强大的绘图环境,允许开发者动态绘制图形、图片等。然而,由于Canvas本质上是一个位图,它并不像DOM元素那样可以直接监听和处理事件。当我们想要在Canvas上实现...

    对jQuery的事件绑定的一些思考(补充)

    在JavaScript的世界里,jQuery库因其简洁的API和强大的功能而广受欢迎,特别是在处理DOM操作和事件绑定方面。然而,正如标题和描述所指出的,jQuery的事件绑定有时也会带来一些问题,比如内存消耗过大、动态生成元素...

    事件绑定与销毁共1页.pdf.zip

    在IT领域,尤其是Web开发中,事件绑定与销毁是至关重要的概念,它们直接影响到应用程序的交互性和性能。这里,我们主要探讨的是JavaScript中的事件处理,因为JavaScript是Web开发中最常用的客户端脚本语言。 事件...

    ASPX.NET中 GridView_按钮事件绑定 免费下载

    ### ASPX.NET中GridView按钮事件绑定详解 #### 一、概述 在ASPX.NET开发过程中,经常需要处理数据网格中的用户交互操作。其中,`GridView`控件因其强大的功能及灵活性而被广泛应用于Web应用程序中。`GridView`控件...

    js事件绑定机制1

    JavaScript事件绑定机制是JavaScript编程中一个非常重要的概念,它涉及到用户与网页交互时的响应处理。在提供的内容中,展示了三种不同的事件绑定方式,分别使用jQuery库的不同方法来实现。这里我们将详细探讨这些...

Global site tag (gtag.js) - Google Analytics