ExtJS 自定义事件学习

70、ExtJs的combobox的监听事件 ExtJs的combobox的监听事件 阅读详情

最近在北京一家软件工作做web开发,用到了ExtJS,在工作的过程中,发现Ext的事件模型运用的非常广泛,几乎是无处不在,因此,总结了一些关于ExtJS事件的知识,晒出来与需要的人分享。

事件模型在Ext应用中有着尤为重要的作用。Ext中的事件模型分为两种类型:自定义事件和浏览器事件。

自定义事件:

   Ext中遵循一种树状的事件模型,所有继承自Ext.util.Observable类的控件都可以支持事件。可以为这些继承Ext.util.Observable的对象定义一些事件,然后为这些事件配置监听器,当某个事件触发时,会自动的调用相应的监听器,这些就是Ext的事件模型。

    下面通过继承Ext.util.Observable来实现一个支持事件的对象,显示过程代码如下:

    Person 类:

     

以上代码实现了一个名为Person的对象,他有一个属性name,初始化时,调用addEvent函数定义了三个事件,walk,eat,sleep,然后使用Ext.extend()让Person继承了Ext.util.Observable的所有属性。此外,还加上了函数info()然他返回Person的信息。

接下来该怎么做呢?

我们在HTML中创建一个Person的实例,然后为它的事件配置好监听器,代码如下:

为Person添加事件监听器:

  

这里的on()是addEvent()的简写形式,功能完全一样。第一个参数传递事件名称,第二个参数是事件发生时执行的函数,为简单期间,我们在这里写生alert()的形式。

   现在准备工作已经都就绪,在这些事件被触发时就可以看到效果了,可是怎么触发呢?为了便于控制,我们设置3个按钮,在按钮按下时触发相应的事件。

   触发person的事件:

    

   接着调用fireEvent就会触发事件,传入一个事件名称作为参数,该事件对应的监听函数就会执行。

   下面要讲述的是只有动态语言才有的特性,如果想给监听方法传递参数,直接把参数写到fireEvent()里面就行了,不用管参数数量,也不用管参数类型(字符串,数字,日期,数组等)。不过,需要确保监听函数可以处理你传过去的参数,如果监听函数需要某个参数,触发事件时却忘了传递过去,这时就会出错。这种因为动态语言的特性而导致的非直观错误非常难以查找。

   正如on是addListener的简写,removeListener的简写是un。你可以用它删除某个事件对应的监听函数,具体的操作代码如下:

    

还有一个purgeListener()函数,一旦调用这个函数,所有的监听器都删掉了,请注意,是所有的监听器,一旦调用这个函数,所有的事件

都不起作用了。因此,一定要慎用。

   

Gephi新手必看:如何用Excel整理CSV数据快速生成网络图(附模板) 本文为Gephi新手提供了一份从Excel数据整理到生成专业网络图的完整指南。详细讲解了如何构建规范的节点表和边表CSV文件,并导入Gephi进行可视化分析。通过实战案例,帮助读者快速掌握利用Excel整理数据、规避常见错误,并运用布局算法与视觉编码,将复杂关系数据转化为直观的网络洞察。 阅读详情

相关推荐

2025华为od机试真题B卷【停车场费用统计】Python实现

2025华为od机试真题B卷【停车场费用统计】Python实现

MISAYAONE的博客 490

ExtJs源码分析与学习ExtJs事件机制(一)

      前面讲了ExtJs核心代码以及扩展后,今天来说说ExtJs事件机制,要想弄明白ExtJs事件机制,就必须先知道浏览器的事件机制,这里给出了浏览器事件机制与自定义事件的实现 。        首先看源码 ext-base-event.js 关于浏览器本身事件的封装。代码中实现了各主要浏览器的兼容,以及对一些事件进行了扩展。该代码中首先定义了类Ext.lib.Event,该...

linder0209的专栏 355

深入探索EXTJS事件处理与模板机制

EXTJS是一个构建富互联网应用的JavaScript框架,其事件处理机制是其核心特性之一。事件处理不仅限于按钮点击或是键盘输入,而是延伸到更为复杂的用户交互和数据管理。掌握EXTJS事件处理机制能够帮助开发者高效地构建具有丰富交互功能的应用程序。观察者模式由两部分组成:主题(Subject)和观察者(Observer)。主题维护观察者列表,当主题状态发生变化时,它将通知所有已注册的观察者对象。观察者则对主题状态感兴趣,一旦主题发生变化,观察者即可作出响应。

weixin_31597759的博客 969

Ext使用总结(一)

  一、获取元素(Getting Elements) 1.Ext.get var el = Ext.get('myElementId');//获取元素,等同于document.getElementById('myElementId');//会缓存 2. Ext.fly var el = Ext.fly('myElementId')//不需要缓存。 注:享元模式(Flyweight De...

wxg6203的专栏 1271

extjs grid java_Extjs 4.2 Grid增删改及后台交互(Java)

上次发了Easyui Datagrid的增删改查的使用学习记录后一直想整理下基于Extjs4.2的Grid学习使用记录。苦于抽不出时间,一直拖到现在。不得不说,Extjs确实很强大,新版的Neptune风格也很入我眼,但毕竟没怎么用过,第一次用,也不敢上来就搞什么自定义组件,也就纯粹的model+store+panel声明式创建表格了。抛开分页,抛开排序,今天只简单讲一下最近使用中总结出来的res...

weixin_34007888的博客 288

ExtJs源码分析与学习ExtJs事件机制(三)

这篇讲ExtJs事件的管理和调用       ExtJs事件的管理非常强大,主要定义在Ext.EventManager对象(单例模式)中。先看注册事件监听方式,ExtJs提供了几种方式来注册元素监听函数通过Ext.EventManager.addListener/on函数来为

司建伟的专栏 5411

ExtJS——观察者及被观察者

观察者: 观察的主体是用来进行检测部分的功能,它是在类库中实现的共有功能。对于采用观察者模式事件来讲,首先我们定义被观察者的接口,比如是要进行扩展,就是实现什么的接口或按什么格式的来编写注册的功能。Ext组件的事件机制采用是的规定格式,这个规定是格式是规定函数名和函数的参数形式。 对于这个规定,Observable类给出一个addEvent方法用来每个需要事件能力组件在初始化时就进行格式规定。

wangzhiyuande的专栏 929

ExtJS学习之道:ExtJs事件自定义事件、on、eventManager)示例

页面代码: [javascript] view plaincopyprint?           "stylesheet" type="text/css" href="../../../../resources/css/ext-all.css" mce_href="resources/css/ext-all.css" />          "text/javascr

Java小迷的专栏 1087

ExtJS学习-----自定义事件

Ext中遵循一种树状的事件模型,所有继承自Ext.util.observable类的控件都可以支持事件。           以下是自定义事件事例:                             Ext.onReady(function () {             Person = function (name) {

沙漠之鱼 463

ExtJs事件自定义事件、on、eventManager)示例

<br />鉴于最近更新主页比较慢,先把最近更新的extJs示例发到这里好了。<br /> <br />页面代码:<br /><body> <link rel="stylesheet" type="text/css" href="../../../../resources/css/ext-all.css" mce_href="resources/css/ext-all.css" /> <mce:script type="text/javascript" src="../../../../ext/

蝶园 1万+

extjs自定义事件和浏览器事件

/**  * Extjs事件分:自定义事件和浏览器事件  * 1.自定义事件都继承自Ext.util.Observable类,以支持事件,然后为这些事件配置监听器,出发就调用对应的监听器;     *2.     EXT使用Ext.EventManager、Ext.EventObject和Ext.lib.Event对原生浏览器事件进行了封装,  * 最后展现在我们面前的就是一套统一的跨浏

工匠精神coding,终生学习 2261

html加上 extjs右键,extjs 处理HTML事件自定义事件

1. 处理HTML元素的标准事件HTML元素的标准事件是指mouseover、mousedown、click、 blur、focus、change等。在ExtJS中,这些事件的处理如下:注册一个事件处理函数使用: Ext.get('myElement').on('click', myHandler, myScope) myElement是要注册的元素的ID,click是事件的名称(注意,和HTML...

weixin_34820733的博客 220

extjs自定义事件

extjs自定义事件主要分三步 1.在类中定义事件名称:   Person = function(config) { Person.superclass.constructor.call(this, config); this.name = config.name || ''; this.sex = config.sex ...

鄒蠱 259

ExtJs事件处理

ExtJs事件处理 Ø         非常基础的例子想象一下这样一个例子,当用户点击一个链接时,你想向他显示一则警告信息。请继续往下看,因为在开始处理事件前你也许想知道更多。var el = Ext.get(somelink);el.on(click, function(){    alert(you click on a link);});注意,在这里我们使用了

sz_bdqn的专栏 7971

Extjs学习 事件处理

一、addListener方法 Javascript代码   var button = Ext.get('btn');    button.addListener('click',hello1);//绑定事件处理函数    button.addListener('click',hello2);   二、ExtJS支持的自定义事件 Ja

jazywoo_在路上 770

ExtJS4.2学习(8)——基础知识之事件机制

在我们真正开发中,主要用到一些高级组件,其实真正对底层的一些原理还是很少有人关注的,今天在网上看到一篇文章,感觉非常不错,一方面共享一下,另一方面,也作为此次ExtJS讨论的完整性考虑。 其实针对ExtJS事件机制,主要还是了解其原理。 前言 工作中用ExtJS有一段时间了,Ext丰富的UI组件大大的提高了开发B/S应用的效率。虽然近期工作中天天都用...

weixin_34402408的博客 294

HTML DOM事件

HTML DOM事件 鼠标事件、键盘事件、框架/对象事件、表单事件、剪贴板事件、打印事件、拖动事件、多媒体事件、动画事件、过渡事件、其他事件。 我们用的较多的事件就是:鼠标事件、键盘事件、框架/对象事件和表单事件。 每个事件都有相应的属性,下面就针对这四个事件总结出用的最频繁的属性及其属性的描述。 鼠标事件 onclick 当用户点击某个对象时调用的事件句柄。 oncontextmenu 在用户点击鼠标右键打开上下文菜单时触发 ondblclick 当用户双击某个对象时调用的事件句柄。 onmousedow

weixin_44565686的博客 367

addEventListener()与removeEventListener()

addEventListener()与removeEventListener()用于处理指定和删除事件处理程序操作。所有的DOM节点中都包含这两种方法,并且它们都接受3个参数:要处理的事件名、作为事件处理程序的函数和一个布尔值。最有这个布尔值参数是true,表示在捕获阶段调用事件处理程序;如果是false,表示在冒泡阶段调用事件处理程序。 要在按钮上为click事件添加事件处理程序,可以使用

web 前端 5万+

EXTJS删除确认事件

Ext.Msg.confirm('信息确认', '您确认要删除该记录吗?', function(btn) { if (btn == 'yes') { Ext.Ajax.request({ url : __ctxPath + '/document/multiDelDocPrivilege.do', params : {

何冠勋的博客 1101

STM32USBHID键盘资料(史上最全).rar_STM32USBHID键盘_USB Keyboard_hid键盘 Stm32

STM32 USB HID键盘资料,带按键代码,可以参考下~~~~~~~~~~~~~~~~~~~~~~~~~~~~

上一篇: javascript 获取类似于Guid的随机字符串
下一篇: ExtJS 进度条的使用
wangdingbang
博客等级 码龄17年 82粉丝 82原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值