dojo tabContainer - 如何在鼠标右键单击弹出菜单下获取选项卡 ID 不在焦点

dojo tabContainer - how to get tab id under right-mouse click popup menu for tab not in focus

我是 dojo 新手,正在为我的客户修改现有应用程序并向弹出菜单添加额外选项....'Close all',和 'Close other tabs'。已经存在 'Close'.

添加额外的菜单项非常简单...'Close all' 获取 tabContainer 并迭代删除它们的选项卡。

但对于 'Close other tabs',即关闭除我右键单击的选项卡之外的所有其他选项卡,我不知道如何获取该选项卡的 ID,鼠标右键单击是在该选项卡上完毕。

'selectedChildWidget' 不是我想要的选项卡,它给出了当前选中的选项卡...我右键单击了其他未选中的选项卡之一。

有什么想法吗?我有鼠标事件,但找不到返回触发它的选项卡的路径,只有弹出菜单。

非常感谢,安德鲁(很快就变灰了)

Dijit 菜单有一个 currentTarget 属性 指示菜单显示的节点。从 MenuItem 的 onClick 处理程序,您可以使用 this.getParent().currentTarget:

访问当前目标节点
closeMenu.addChild(new MenuItem({
    label: 'Close all',
    ownerDocument: document,
    onClick: function (evt) {
        // tab that was clicked
        var tab = registry.byNode(this.getParent().currentTarget);
        // tab's associated page is tab.page
    }
}));