为什么doLayout不能在第二次点击时工作?

时间:2010-10-28 15:09:06

标签: javascript extjs

我正在窗口上使用doLayout函数。

    var win = new Ext.Window({
    id: 'site-action-window',
    closeAction: 'hide',
    resizable: false,
    layout: 'fit'
});

    function showWin(f) {
    win.removeAll();
    win.add(f);
    win.setSize(400, 150);
    win.setTitle(localize.addLanguage);
    win.show();
    win.doLayout();
}

当我第一次调用此函数时,一切正常。 但是一旦我再次打电话,我会收到一条错误,说“b.getPositionEl()。dom is undefined” 来自火虫。 任何人都可以解释一下吗?

感谢

3 个答案:

答案 0 :(得分:0)

由于您已经在使用Firebug,请查看堆栈跟踪。什么是b?你需要做一些调试。

答案 1 :(得分:0)

在定义窗口时尝试添加 closeAction:'隐藏'

    var win = new Ext.Window({
    id: 'site-action-window',
    closeAction: 'hide',
    resizable: false,
    closeAction: 'hide',
    layout: 'fit'});

当用户关闭窗口时,窗口会自动销毁 - 因此无法再次调用。使用closeAction:'hide'会将关闭按钮的行为从'close'更改为'hide'。

资料来源:http://dev.sencha.com/deploy/dev/docs/?class=Ext.Window

答案 2 :(得分:0)

发现问题,

我正在摧毁物体然后试图从铲子外面再次召唤它

感谢您的回答