gpt4 book ai didi

javascript - ExtJs 窗口不显示

转载 作者:行者123 更新时间:2023-11-29 17:17:07 26 4
gpt4 key购买 nike

我有一个切换按钮:

        var button =  new Ext.Button({
tooltip: "Интенсивность",
iconCls: "gxp-icon-intensity",
enableToggle:true,
toggleHandler: function (button, state) {
if(state){
alert(state)
map.getLayersByName("Интенсивность")[0].setVisibility(true);
intWin.show();
}else{
map.getLayersByName("Интенсивность")[0].setVisibility(false);
alert(intWin.collapsed);
//intWin.close();
}
}
});

当按钮被切换时,我会显示一个窗口:

    var intWin = new Ext.Window({
id: 'intWin',
layout: 'fit',
title:'Интенсивность',
autoScroll:false,
width:300,
items:[/*intForm*/]
});

当我关闭窗口时,按钮取消切换。但是当我再次点击它时,我没有得到一个窗口。 Firebug 显示此错误:

 TypeError: b.dom is undefined

...String(this.enableUrlEncode)?this.enableUrlEncode:"data"]=Ext.encode(b);g.params...

这里有什么问题吗?

更新

好吧,我的错。我试图展示一个被破坏的元素。

但在这种情况下:
1 当我关闭窗口被销毁时,这个窗口中的任何窗体都会被销毁吗?
2 如何检查窗口是否被销毁?

更新 2

现在我尝试使用这个函数来创建窗口:

    function intWinCreate(){
var intWin = new Ext.Window({
id: 'intWin',
layout: 'fit',
title:'Интенсивность',
autoScroll:false,
width:300,
items:[/*intForm*/]
});
};

在按钮处理程序中:

                intWinCreate();
intWin.show();

但是我得到一个错误:

  ReferenceError: intWin is not defined

如果我将 intWin.show(); 放入函数中,那么该窗口就会显示。
有什么问题吗?

最佳答案

当一个元素被销毁时,其中的所有内容也会被销毁。

在您的情况下,您通过设置属性 closeAction: 'hide' 将关闭操作的默认行为更改为隐藏,这将导致窗口隐藏而不是被销毁。

例如:

var intWin = new Ext.Window({
id: 'intWin',
layout: 'fit',
closeAction: 'hide',
title:'Интенсивность',
autoScroll:false,
width:300,
items:[/*intForm*/]
});

更新:
这是因为 intWin 是方法 intWinCreate 中的局部变量。您可以做的是从该方法返回窗口并在其上调用显示。

function intWinCreate(){
return new Ext.Window({
id: 'intWin',
layout: 'fit',
title:'Интенсивность',
autoScroll:false,
width:300,
items:[/*intForm*/]
});
};

然后

intWinCreate().show()

关于javascript - ExtJs 窗口不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16558566/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com