监听器上的TAB单击或激活不正常工作/ extjs4
本文关键字:不正常 工作 extjs4 激活 TAB 单击 监听器 | 更新日期: 2023-09-27 18:04:35
我正在用extjs4和c#开发一个应用程序,它是基于浏览器布局的例子。我在左边有一个菜单,在那里你可以点击菜单上的每一个项目。右边是我所有的标签
我在选项卡上使用的事件侦听器在我单击选项卡时工作,但在之后不工作我第一次从左侧菜单单击它。
为了更清楚,当我第一次加载应用程序时,我必须从左侧菜单中选择一个项目,然后它显示tab1激活的选项卡。一切都很好,除了当我选择另一个项目然后回到我的选项卡时它不起作用。
这是我的听众:
listeners: { activate: function () {
alert('tab1');
}
},
下面是点击菜单时调用的代码:
menuPanel.getSelectionModel().on('select', function (selModel, record) {
if (record.get('leaf')) {
Ext.getCmp('content-panel').layout.setActiveItem(record.getId() + '-panel');
Ext.getCmp('cardTabs').setActiveTab(0);
}}
提前感谢!
一次检查下面的url:
http://jsfiddle.net/6NK7n/6/var sample1 = {
id : 'example1',
border : false,
title : 'sample1'
};
var sample2 = {
id : 'example2',
border : false,
title : 'sample2'
};
Ext.create('Ext.tab.Panel',{
title : 'example',
width : 300,
height : 300,
draggable : false,
plain : true,
id : 'examplepanel',
activeTab : 0,
border : true,
renderTo : document.body,
items : [sample1,sample2],
listeners : {
beforetabchange : function(tab,newTab,currentTab){
if(newTab.getId() == 'example1'){
alert('sample1 tab is selected');
}else if(newTab.getId() == 'example2'){
alert('sample2 tab is selected');
}
}
}
});
最好使用beforetabchange
而不是activate
侦听器。试试下面这个:
listeners : {
beforetabchange : function(tab, newTab, currentTab){
if(newTab != null){
if(newTab.getId()=='tab1'){
alert('tab1');
}
}
}
}
和上面一样,您可以为每个希望执行的选项卡编写侦听器
已解决
我给tabpanel添加了一个监听器
listeners: { tabchange: function () {
//refresh
switch (this.getActiveTab().id) {
case 'myId1': myFunction();
.........
}
},