tabpanel不能获取beforeclose的事件是怎么回事??

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里面试试看。