(是的,我知道这与How can I attach an react to user clicking on tabs in Ext.TabPanel类似,但这是一个不同的问题)
我有一个tabpanel,可以通过单击选项卡或单击其他选项卡中的链接来访问其面板。选项卡面板中的一个选项卡有一个菜单供用户选择所需的子面板。我想要实现的是单击选项卡不会激活它 - 从而迫使用户从菜单中选择一个选项。但是,我仍然希望在单击其他面板上的链接时,或者选择菜单选项时激活面板。
这是我禁用面板的方法:
'beforeactivate': function (component, eOpts) {
//to prevent loading tab content on tab/menu click
console.debug('tab disabler', arguments);
return false;
}
它有效 - 只是效果很好,阻止一切。我一直无法找到一种方法来检测点击标签之间的区别,以及完全没有做任何其他事情。
答案 0 :(得分:2)
基本上您已经描述了这个问题:您只想在单击选项卡标题时阻止激活选项卡,而不是完全禁用,因此beforeactivate
事件不是最佳选择。
您可以通过面板上的tab
属性访问tab header(基本上只是标签栏中的按钮),并通过停止传播{{{}来阻止执行其处理程序3}}事件:
panel.tab.on({
'click': function(tab, e) {
e.stopEvent();
}
});
注意:文档说你也可以返回false来实现相同的功能,但这似乎不起作用。
这根本不会影响面板的激活,但会影响标签页上的互动。
查看click
了解工作示例。