ExtJS对用户点击tabpanel中的选项卡做出反应

时间:2014-04-02 13:31:09

标签: javascript extjs

(是的,我知道这与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;
}

它有效 - 只是效果很好,阻止一切。我一直无法找到一种方法来检测点击标签之间的区别,以及完全没有做任何其他事情。

1 个答案:

答案 0 :(得分:2)

基本上您已经描述了这个问题:您只想在单击选项卡标题时阻止激活选项卡,而不是完全禁用,因此beforeactivate事件不是最佳选择。

您可以通过面板上的tab属性访问tab header(基本上只是标签栏中的按钮),并通过停止传播{{{}来阻止执行其处理程序3}}事件:

panel.tab.on({
    'click': function(tab, e) {
        e.stopEvent();
    }
});

注意:文档说你也可以返回false来实现相同的功能,但这似乎不起作用。

这根本不会影响面板的激活,但会影响标签页上的互动。

查看click了解工作示例。