Javascript 无法关闭可关闭的选项卡并激活选项卡
我做了一个演示,演示了这些问题。第一个问题是无法关闭选项卡栏中可关闭的选项卡。代码非常简单,如下所示:Javascript 无法关闭可关闭的选项卡并激活选项卡,javascript,extjs,Javascript,Extjs,我做了一个演示,演示了这些问题。第一个问题是无法关闭选项卡栏中可关闭的选项卡。代码非常简单,如下所示: Ext.create("Ext.tab.Bar",{ renderTo: "one", items:[{"text":"One","closable":true},{"text":"Two","closable":true}
Ext.create("Ext.tab.Bar",{
renderTo: "one",
items:[{"text":"One","closable":true},{"text":"Two","closable":true}]
});
文件上说,
可关闭:布尔可绑定
True使选项卡可关闭并显示关闭图标
因此,该属性不仅与关闭图标有关,还与要关闭的行为有关
我面临的第二个问题是,不可能通过tabbar激活添加到tabpanel的选项卡。代码也非常简单:
Ext.create("Ext.tab.Panel",{
renderTo: "two",
id: "test2",
items:[{"title":"One","closable":true},{"title":"Two","closable":true}],
listeners: {
render: function () {
this.getTabBar().add({"text":"Three"});
}
}
});
只要尝试激活最后一个选项卡,您就会失败。如果在此选项卡上设置了active
属性,则无法停用此选项卡。那么,我们如何解决这一切呢
TabBar由Ext.tab.Panel在内部使用,通常不应使用
需要手动创建
tabbar的实现依赖于它是tabpanel的一部分这一事实。如果我们深入研究它的源代码,我们将看到在“”方法实现中,它检查是否有底层卡要关闭:
if (tabPanel && card) {...
与第二个行为相关,如果您将检查“doActivateTab”方法实现,也在tabbar源代码中,您将看到:
doActivateTab: function(tab) {
var tabPanel = this.tabPanel;
if (tabPanel) {
// TabPanel will call setActiveTab of the TabBar
if (!tab.disabled) {
tabPanel.setActiveTab(tab.card);
}
} else {
this.setActiveTab(tab);
}
}
因此,如果没有tabpanel,它将只激活选项卡,如果有,它将调用tabpanel的“”,如果它没有找到要激活的选项卡上的卡,则激活上一个选项卡
不应直接添加到选项卡栏,而应添加到选项卡面板:
this.add({"title":"Three"});
这是一张工作票。似乎需要在渲染后设置setactivetab