tabpanel不能获取beforeclose的事件是怎么回事??
代码大抵是这样:
var tabpanel = new Ext.TabPanel({
//一些属性
listeners:{'beforeclose': function(){
Ext.MessageBox.show();
}}
})
var panel = Ext.Panel({
//一些属性
closable: true,
});
tabpanel.add(panel);
界面正常显示,panel也能够被关闭,可是按照我的设想tabpanel的listeners应该可以检测到‘beforeclose’事件,
可是没有弹出messagebox框来,如果换成是检测‘beforeremove’事件是可以的
我后来设置panel检测也是不行,但是panel能够检测到’beforedestroy‘事件
谁能给我一个解释呢?
[b]问题补充:[/b]
我也写过了panel.on('beforeclose'),还是一样的没有任何反应
[code="js"]Ext.onReady(function() {
var tabs = new Ext.TabPanel({
renderTo : document.body,
resizeTabs : true,
minTabWidth : 115,
tabWidth : 135,
enableTabScroll : true,
width : 600,
height : 250,
defaults : {
autoScroll : true
},
buttons : [{
text : '添加tab',
handler : addTab
}],
listeners : {
'beforeremove' : function() {
if(!confirm("是否关闭?")){
return false;
}
}
}
});
var index = 0;
while (index < 7) {
addTab();
}
function addTab() {
tabs.add({
title : 'New Tab ' + (++index),
html : 'Tab Body ' + (index) + '<br/><br/>',
closable : true
}).show();
}
});
[/code]
'beforeclose' 这个事件不是声明在 tabPanel
是声明在 被嵌的panel
TabPanel添加listener监听的是TabPanel的关闭事件,而不是里面的Panel的关闭事件,你把关闭监听加到panel里面试试看。