在Extjs中,所有继承自Ext.util.Observable类的控件都可以支持事件。
要为一个类自定义一些事件,遵循以下步骤即可:
1,首先定义一个类
2,让这个类继承Ext.util.Observable类
3,为这个类定义一些事件,并且配置监听器
4,触发类所定义的事件。
看代码:
第一步:定义类并且继承Ext.util.Observable类
定义一个Person 类
Person=function(name){
this.name=name;
this.addEvents("walk","eat","sleep");
}
Ext.extend(Person,Ext.Util.Observable,{
info:function(event){
return this.name+'is'+event+'ing.';
}
})
第二部:为类添加监听器;
var person=new Person("Mike");
person.on('walk',function(){
Ext.Msg.alert('event',person.name+'walk事件!!');
});
person.on('eat',function(breakfast,lunch,super){
Ext.Msg.alert('event',person.name+'eat事 件!!'+breakfast+lunch+super);
});
person.on('sleep',function(time){
Ext.Msg.alert('event',person.name+'sleep事件!!'+time);
});
第三部:触发事件
在页面添加三个按钮,id为别为:walk,eat,sleep
Ext.get('walk').on('click',function(){
person.fireEvent('walk');
});
Ext.get('eat').on('click',function(){
person.fireEvent('eat','早餐','午餐','晚餐');
});
Ext.get('walk').on('click',function(){
person.fireEvent('sleep',new Date());
});
调用fireEvent函数就可以根据事件名称匹配并且触发该事件。 上述代码中说使用的方法都是继承自Ext.util.Observable类。