ExtJs中的事件

pre*_*fer 2 javascript events extjs

我有两个窗户.在一个窗口中调用的事件,但处理程序(侦听器)必须在另一个窗口中.可以这样做吗?如果是,怎么样?

Aru*_*hny 7

如何创建窗口,是第二个窗口,它触发第一个窗口(一个带有监听器)创建的子窗口的事件?

您想要触发自定义事件还是使用extjs事件?

您可以以不同的方式添加自定义事件

var win = new xxxWindow();
win.addEvents('myevent');
Run Code Online (Sandbox Code Playgroud)

要么

Ext.extend(xxxWindow, Ext.Window, {
    initComponent: function(){
        xxxWindow.superclass.initComponent.apply(this, arguments);
        this.addEvents('myevent');
    }
});
Run Code Online (Sandbox Code Playgroud)

然后在创建第二个窗口后的第一个窗口(一个带有监听器和第二个窗口的父窗口)中

showSecondWindow: function(){
    var win = new xxxWindow();
    win.on('myevent', this.myEventHandler, this);
},

myEventHandler: function(arg1, arg2){
}
Run Code Online (Sandbox Code Playgroud)

从第二个窗口触发自定义事件

fireMyEvent: function(arg1, arg2){
    this.fireEvent('myevent', arg1, arg2);
}
Run Code Online (Sandbox Code Playgroud)

希望这能解决你的问题.