1.传统事件绑定回顾
1.1第一种
<script type="text/javascript">
function hello(){
alert('hello word');
}
</script>
html 调用
<input type="button" id="btn1" value="第一种事件绑定方式" onClick="hello()">
1.2第二种
if(Ext.isIE){
document.getElementById("btn2").attachEvent("onclick",function(){
alert("第二种事件绑定方式");
});
}else{
document.getElementById("btn2").addEventListener("click",function(){
alert("第二种事件绑定方式");
});
}
2.EXT方法
Ext.get('btn3').on("click",function(){ //get dom 中ID
alert("第三种事件绑定方式");
})
3.自定义 EXT事件 和 事件拦截
要让一个组件具有事件机制,必须先继承Ext.util.Observale
业务逻辑:
一个自定义事件的例子
没有用到事件处理的场景:
母亲问孩子和不饿-->
<-- 孩子
饿了-->给一瓶牛奶
不饿-->不给
事件场景:
母亲给孩子一个瓶牛奶-->
孩子拿到牛奶感觉饿了就喝
感觉不饿就不喝
角色功能分析:
孩子:应该有自己能拿到牛奶判断饿不饿的方法,当母亲给他牛奶的时候调用这个方法.
那么孩子就要有一个业务事件时刻监听这母亲什么时候给自己牛奶
母亲:调用孩子拿牛奶的方法,并且传入一瓶牛奶
(function(){
Ext.onReady(function(){
Ext.define("children",{
extend:'Ext.util.Observable',
constructor:function(){
this.state = "hungry";//目前所属的状态 full
//调用setMilk方法就可以触发hungry事件
this.setMilk = function(milk){
//(3)触发一个事件 调用
this.fireEvent('hungry',milk);
};
//(1)注册一个事件 children对外有这样一个事件 声明
this.addEvents({'hungry':true});
//(2)注册
this.addListener("hungry",function(milk){
if(this.state == 'hungry'){
this.drink(milk);
}else{
alert("我不饿");
}
});
this.drink = function(milk){
alert("我喝掉了一瓶牛奶: "+milk);
};
}
});
/**
* 为对象添加一个事件addEvents-->事件的监听方式注册这个事件addListener-->触发了这个事件的动作fireEvent
*/
var children = Ext.create("children",{});//本对象是牛奶过敏的对象
Ext.util.Observable.capture(children,function(eventName){ //事件拦截
if(eventName == "hungry"){
alert('这个孩子牛奶过敏不能和牛奶...');
return false;
}else{
return true;
}
})
//母亲调用孩子的接受牛奶的方法
children.setMilk("三鹿牛奶");
});
})();
4.addManagedListener 收管制的监听
他是由调用的组建管理的,当组建执行了销毁命令的时候所有被组建管制的事件全部销毁
(function(){
Ext.onReady(function(){
var tbar = Ext.create('Ext.toolbar.Toolbar',{
renderTo:Ext.getBody(),
width:500,
items:[
{xtype:'button',id:'create',text:'create'},
{xtype:'button',id:'delete',text:'delete'},
{xtype:'button',text:'销毁删除按钮',handler:function(){
var c = Ext.getCmp("delete");
if(c){
c.destroy();
}
}}
]
});
var deleteB = Ext.getCmp("delete");
deleteB.addManagedListener(Ext.getCmp("create"),'click',function(){ //将Ext.getCmp("create")
组件的“click”操作,交给deleteB管理。
alert('添加操作');
});
//Ext.getCmp("create").on("click",function(){});
});
})();
5.relayEvents 事件的分发和传播(控制实现事件在不同空间或对象内的传播)
比如说孩子喝完三鹿就去医院呀,老爸就要带着去医院(老爸继续孩子喝牛奶的事件)
//父亲类没有声明过任何监听事件
Ext.define("father",{
extend:'Ext.util.Observable',
constructor:function(config){
this.listeners = config.listeners;
this.superclass.constructor.call(this,config);
}
});
var father = Ext.create("father",{});
//把children的事件传播给father
father.relayEvents(children,['hungry']);
father.on("hungry",function(){
alert("送喝了三鹿的孩子去医院..");
});
6.事件对象Ext.EventObject
不是一个单例,不能被直接new出来,他会存活早事件处理的函数中
Ext.onReady(function(){
var b = Ext.get("btn4");
b.on("click",function(e){ //e 为事件对象
alert(e.getPageX())
});
})
7.事件管理器Ext.EventManager
更方便的为页面元素绑定事件处理函数
Ext.onReady(function(){
Ext.EventManager.addListener("btn5",'click',function(){
alert("通过事件管理器进行事件的监听注册");
})
})
分享到:
相关推荐
ExtJS学习笔记.docExtJS学习笔记.docExtJS学习笔记.docExtJS学习笔记.doc
19. extJs 2.0学习笔记(事件注册总结篇) 45 20. extJs 2.0学习笔记(Ext.Panel篇一) 48 21. extJs 2.0学习笔记(Ext.Panel篇二) 50 22. extJs 2.0学习笔记(Ext.Panel篇三) 59 23. extJs 2.0学习笔记(Ext.Panel篇四) 62...
ExtJS4学习笔记(七)---带搜索的Grid(SearchGrid) ExtJS4学习笔记(八)---Grid多选/全选 ExtJS4学习笔记(九)---ExtJS4 EditGrid(可编辑的Grid) ExtJS4学习笔记(十)---ExtJS4图片验证码的实现
### Extjs 5 学习笔记之 SenchaCmd 深入解析 #### 一、SenchaCmd 的简介 SenchaCmd 是一个跨平台的命令行工具,它为基于 ExtJS 和 Sencha Touch 应用程序的开发周期提供了全面的支持。从创建应用程序的基础结构到...
EXTJS in Action 是一本专为学习EXTJS编写的书籍,但这里我们主要关注学习笔记中的关键知识点。 首先,EXTJS的目录结构非常重要,因为它包含了所有必要的资源和源码: 1. `adapter`:这部分包含了适配器,用于将...
适合ExtJs开发人员extjs技术上手以及深入
ExtJs简明教程+Extjs学习笔记,来源网络,免费奉送,我讨厌需要资源分~
以上介绍的只是Extjs布局管理中的一小部分,Extjs官网提供了丰富的例子和详细的文档,这是学习Extjs布局的最佳资源。通过官网的例子,可以直观地看到不同布局类型的效果和配置方法,极大地便利了开发者的布局实践和...
语言程序设计资料:ExtJs学习笔记-2积分.doc
在探讨《ExtJS学习心得笔记》这一主题时,我们不仅会深入理解ExtJS框架的核心概念与实践技巧,还会从新手的角度出发,提炼出一系列有助于快速上手的学习策略,避免常见的学习陷阱,确保学习过程高效而有成效。...
ExtJS 是一个强大的JavaScript框架,主要用于构建富客户端Web应用程序。...学习ExtJS可以帮助开发者快速构建功能丰富的、交互性强的Web应用。通过深入理解和实践,可以提升开发效率,创建出符合现代Web标准的用户界面。
这个学习笔记涵盖了从基础到高级的多个主题,帮助读者深入理解ExtJs的核心概念和技术。以下是一些关键知识点的详细说明: 1. **ExtJs 结构树**:这部分内容可能涉及ExtJs如何构建可自定义的用户界面组件树,包括...
Extjs4.0学习笔记大全.pdf,供大家学习
exjts4 学习笔记源码,源码包含windws,hbox,vbox和Grid的应用,其中grid介绍比较多。下载解压后,部署后就可以使用,所有代码均在demo文件夹下。更多extjs4教程,请关注http://www.mhzg.net