ExtJS4.2:想实现动态替换Viewport的内容,为何不符合预期呢? 本帖最后由 u011605971 于 2014-04-15 00:36:13 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把panel2的创建过程移到handler里就好了Ext.onReady(function(){ var btn = new Ext.Button({ text : "Change", handler : function() { var items=Ext.getCmp('central').items; console.info(items.keys[0]); var central=Ext.getCmp('central'); console.info(central); Ext.getCmp('central').remove(items.keys[0]); //改动在此 var panel2 = Ext.create('Ext.panel.Panel',{ itemId : 'panel2', border : false, title : 'panel2', frame : true }); //改动结束 Ext.getCmp('central').add(panel2); } }); var panel1 = new Ext.Panel({ itemId : 'panel1', border : false, title : 'panel1', frame : true }); var viewport = new Ext.Viewport({ border : false, layout : 'border', items : [ { split : true, region : 'north', frame : true, height : 60, items : [ btn ] }, { split : true, border : false, region : 'west', frame : true, width : 240, collapsible : true, html : 'part2' }, { id : 'central', border : false, layout : 'fit', region : 'center', items : [ panel1 ] } ] }); }) 第二次remove的就是panel2,导致对象销毁了,你在添加就报错了,需要重新new一个panle出来 4.2版本中写成remove(obj,false)就可以了,表示不销毁 javascript如何遍历浏览器窗口取window对象? jQuery中的mouseenter和mouseleave事件 求一段是否确定删除的js代码 救急!!请问转义过后的html编码有什么办法可以再让浏览器执行? 两个JS有冲突,怎么解决啊 编码问题,请指点 JS水晶报表Highcharts 一个小问题:怎样将字符串转换为操作符 如何在网页上用javascript取得系统屏幕大小,如是800*600还是1024*768? 怎样控制滚动条的滚动? js if嵌套优化问题 EXTJS GRID的列不能全部显示
Ext.onReady(function(){
var btn = new Ext.Button({
text : "Change",
handler : function() {
var items=Ext.getCmp('central').items;
console.info(items.keys[0]);
var central=Ext.getCmp('central');
console.info(central);
Ext.getCmp('central').remove(items.keys[0]);
//改动在此
var panel2 = Ext.create('Ext.panel.Panel',{
itemId : 'panel2',
border : false,
title : 'panel2',
frame : true
});
//改动结束
Ext.getCmp('central').add(panel2);
}
});
var panel1 = new Ext.Panel({
itemId : 'panel1',
border : false,
title : 'panel1',
frame : true
});
var viewport = new Ext.Viewport({
border : false,
layout : 'border',
items : [ {
split : true,
region : 'north',
frame : true,
height : 60,
items : [ btn ]
}, {
split : true,
border : false,
region : 'west',
frame : true,
width : 240,
collapsible : true,
html : 'part2'
}, {
id : 'central',
border : false,
layout : 'fit',
region : 'center',
items : [ panel1 ]
} ]
});
})