我有一个切换按钮:
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();
输入该函数,则显示该窗口。
有什么问题?