Ext2.0中的事件

事件在设计模式中观察者模式的实际运行,对于观察者模式,我想说几个特定概念,
1、目标(subject,target)
     1、这是一个大家都感兴趣的对象,他知道他的观察者,可以有任意多个观察者观察同一个目标
     2、提供注册和删除观察者对象的接口
2、观察者(observer)
    为那些在目标发生改变时需获得通知的对象定义一个更新接口

在Ext2.0中的这种使用时比比皆是,假如我们下面定义一个简单的div click的事件,
1var div=Ext.get('click');
2div.on('click',function()    //这里的on是来注册事件,这里注册click事件,下面的function是观察者调用的函数
3{
4    Ext.MessageBox.alert('test','test');
5}
);
6

这是比较简单的一个例子,我这里想说的不是这个,而主要回调函数的中的参数,上面例子中没有任何参数,下面我列出官方给的click有关api,这是一个menu的click,这里可以有三个参数,其实对于你写函数时应该是两个参数,第一个参数是隐藏起来了,从这我们可以看出,对于所有Ext中有关事件回调函数原型第一个参数都是观察者模式的中目标(subject,target),在回调函数中this默认就指向这个实例对象,对于你想改变默认的作用域你可以使用scope,或者在on()函数的第三个参数改变作用域。
click : ( Ext.menu.Menu this, Ext.menu.Item menuItem, Ext.EventObject e )
Fires when this menu is clicked (or when the enter key is pressed while it is active)
Fires when this menu is clicked (or when the enter key is pressed while it is active)
Listeners will be called with the following arguments:
  • this : Ext.menu.Menu
  • menuItem : Ext.menu.Item
    The menu item that was clicked
  • e : Ext.EventObject


posted @ 2008-03-19 14:14  枫崖  阅读(737)  评论(0编辑  收藏  举报