我正在尝试在执行未在与窗口相同的文件中定义的函数后关闭窗口。
我将尝试解释所涉及的类的结构:
有两个类, Class1.js 和 Class2.js ,在Class1.js中定义了一个函数 function1(){} 和 function2(){} 在Class2.js中定义
工作原理:
function2在Class1.js中调用,打开一个窗口,它接收为参数function1 ,如:
函数2(功能1);
function1它在新窗口上单击按钮时执行,也在Class2.js中定义:
var win = new Ext.Window({
id: 'win that I want to close',
.
.
.
buttons: [{
id: 'button that activates function1',
text: 'button1',
listeners: {
click: function1
},
scope: win
},
.
.
.
]
});
win.show();
在Class1.js中,在function1我试着这样做:
if(this.id == 'win that I want to close'){
this.close();
}
但是我得到的范围是新窗口中的按钮,而不是窗口的范围,所以我无法关闭它。
我知道我的解释很糟糕,但不容易解释,我完全陷入困境。
恭喜你,如果你试图找不到我写的东西,你会非常勇敢!谢谢你的帮助!
答案 0 :(得分:0)
我有解决方案:
listeners: {
'click': {
fn: function1,
scope: {
winid: 'win that I want to close'
}
}
}
然后,我可以从Ext.getCmp(this.winid)
获得Class1
的元素。