1

我试图在执行未在与窗口相同的文件中定义的函数后关闭窗口。

我将尝试解释所涉及的类的结构:

有 2 个类,Class1.jsClass2.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();
}

但是我得到的范围是新窗口中按钮的范围,而不是窗口的范围,所以我无法关闭它。

我知道我的解释很糟糕,但不容易解释,我完全被困在这一点上。

如果你试图理解我写的东西,恭喜你,你很勇敢!并感谢您的帮助!

4

1 回答 1

0

我有解决方案:

listeners: {
    'click': {
        fn: function1,
        scope: {
            winid: 'win that I want to close'
        }
    }
}

有了它,我可以使用Ext.getCmp(this.winid)from获取元素Class1

于 2012-07-30T11:56:41.730 回答