Javascript 带有可关闭选项卡的ExtJs Tabpanel关闭事件
我设置的侦听器似乎没有触发。这是我的密码:Javascript 带有可关闭选项卡的ExtJs Tabpanel关闭事件,javascript,events,extjs,tabpanel,Javascript,Events,Extjs,Tabpanel,我设置的侦听器似乎没有触发。这是我的密码: new Ext.TabPanel({ id:'content-tab-panel', renderTo: 'trx_tabs_ext', activeTab: 0, minTabWidth: 150, tabWidth:180, enableTabScroll: true, autoScroll: true, resize
new Ext.TabPanel({
id:'content-tab-panel',
renderTo: 'trx_tabs_ext',
activeTab: 0,
minTabWidth: 150,
tabWidth:180,
enableTabScroll: true,
autoScroll: true,
resizeTabs:true,
defaults: {
autoScroll:true
},
items: [{
title: 'No Active Chat',
id: 'no_chat',
closable: true,
autoScroll: false,
margins: '0 0 0 0',
html: "<div id=\"chat_window_viewer\" style=\"width:900px;height:440px;text-align:left; \"> </div>"
}],
width: '100%',
height: '400px',
listeners: {
tabchange: function(tabPanel, newTab, oldTab, index)
{
console.log('change tab');
},
beforeadd : function (tabpane, component, index) {
console.log('Adding new tab');
},
beforeclose: function(element) {
console.log('closing');
}
}
});
new Ext.TabPanel({
id:'content-tab-panel',
renderTo:'trx_tabs_ext',
活动选项卡:0,
最小宽度:150,
标签宽度:180,
enableTabScroll:true,
autoScroll:是的,
是的,
默认值:{
自动滚动:对
},
项目:[{
标题:“无活动聊天”,
id:'没有聊天',
closable:是的,
自动滚动:错误,
边距:“0”,
html:“
}],
宽度:“100%”,
高度:“400px”,
听众:{
tabchange:函数(tabPanel、newTab、oldTab、index)
{
console.log(“更改选项卡”);
},
beforeadd:函数(选项卡窗格、组件、索引){
log(“添加新选项卡”);
},
关闭前:函数(元素){
console.log(“关闭”);
}
}
});
beforeadd选项卡将触发更改,并通过在控制台写入日志来执行此操作。但是,beforeclose没有
我还试着把它放在Tabpanel的项目中,但也不起作用
在选项卡面板中添加关闭事件的正确方法是什么?若要获取项目关闭事件,请将侦听器添加到该项目
在这里拨弄:您正在使用哪个版本的库?请注意,beforclose事件自2.3.0起可用 当我收听项目的事件时,它对我有效,而不是整个面板
new Ext.TabPanel({
id:'content-tab-panel',
renderTo: 'trx_tabs_ext',
activeTab: 0,
minTabWidth: 150,
tabWidth:180,
enableTabScroll: true,
autoScroll: true,
resizeTabs:true,
defaults: {
autoScroll:true
},
items: [{
title: 'No Active Chat',
id: 'no_chat',
closable: true,
autoScroll: false,
margins: '0 0 0 0',
html: "<div id=\"chat_window_viewer\" style=\"width:900px;height:440px;text-align:left; \"> </div>",
listeners:{
'beforeclose': function(){console.log('closed')}
}
}],
width: '100%',
height: '400px',
listeners: {
tabchange: function(tabPanel, newTab, oldTab, index)
{
console.log('change tab');
},
beforeadd : function (tabpane, component, index) {
console.log('Adding new tab');
}
}
});
new Ext.TabPanel({
id:'content-tab-panel',
renderTo:'trx_tabs_ext',
活动选项卡:0,
最小宽度:150,
标签宽度:180,
enableTabScroll:true,
autoScroll:是的,
是的,
默认值:{
自动滚动:对
},
项目:[{
标题:“无活动聊天”,
id:'没有聊天',
closable:是的,
自动滚动:错误,
边距:“0”,
html:“”,
听众:{
“beforeclose”:函数(){console.log('closed')}
}
}],
宽度:“100%”,
高度:“400px”,
听众:{
tabchange:函数(tabPanel、newTab、oldTab、index)
{
console.log(“更改选项卡”);
},
beforeadd:函数(选项卡窗格、组件、索引){
log(“添加新选项卡”);
}
}
});
由于Extjs 2.3.0,选项卡面板
在关闭前有一个事件:
删除之前(此、组件、EOPT)
在从容器中删除任何Ext.Component
之前激发。处理程序可以返回false以取消
删除该文件
自:2.3.0起提供
参数
- 此:
Ext.container.container
- 组件:
Ext.component
正在移除的组件
- eOpts:
对象
传递的选项对象
到Ext.util.Observable.addListener
因此,只需在选项卡面板中添加一个侦听器即可:
listeners: {
beforeremove: function (panel, item, eOpts) {
console.log(item); // the tab to be removed
}
. . . .
}
它的extjs2.2。是的,它是恐龙。我一直想升级,但没有时间。您在项目中没有侦听器的参数?它有效吗?恐怕在2.3.0之后的关闭事件之前可用。ExtJS是javascript框架,因此它遵循javascript规则。如果您不需要参数,请不要发送。mario died music就是这样,该升级了。tabpanel
组件在关闭前没有事件,除非它是closable:true
。您可能希望在删除之前尝试。见下面我的答案。