日期:2014-05-16  浏览次数:20671 次

实现window的最小化功能

var i = 1;
Ext.onReady(function() {
var newWin = new Ext.Button({
text : "新建窗口",
pressed : true,
handler : function() {
   var win = new Ext.Window({
title : "窗口" + (i++),
width : 400,
height : 300,
minimizable : true,
listeners : {
//最小化窗口事件
minimize : function(window) {
window.hide(win.button.id);
window.minimizable = true;
},
close : function(window) {
var delObj = document.getElementById(window.button.id);
delObj.parentNode.parentNode
.removeChild(delObj.parentNode);
}
}
});
win.show(newWin.id);
win.button = new Ext.Button( {
win : win,
id : "id" + i,
text : win.title,
pressed : true,
handler : function(btn) {
if (btn.win.minimizable) {
btn.win.show(btn.id);
btn.win.minimizable = false;
} else {
btn.win.hide(btn.id);
btn.win.minimizable = true;
}
}
});
toolBar.addButton(win.button);
}
});
var toolBar = new Ext.Toolbar( {
height : 25,
renderTo : Ext.getBody(),
items : [ newWin ]
});
})


模仿window任务栏,实现最小化功能,在创建新窗口的同时会创建button放在tbar上。

可是现在tbar上只显示了“新建窗口”按钮,没有出现最小化window后的按钮




ext 最小化 window javascript

------解决方案--------------------
  close : function(window) {
toolBar.remove(window.button);
         /*
                        var delObj = document.getElementById(window.button.id);
                        delObj.parentNode.parentNode
                                .removeChild(delObj.parentNode);*/
                    }


用ext的方法删除,直接操作dom对象并没有删除数据源中的配置项目,导致doLayout时重新生成了按钮