ExtJS 4-左键单击Ext.panel.panel时如何隐藏上下文菜单?

ExtJS 4-左键单击Ext.panel.panel时如何隐藏上下文菜单?,extjs,extjs4,Extjs,Extjs4,我在geoext 2地图面板上有上下文菜单 我就是这样开始的: var ctxMenu; Ext.get("mapPanel-body").on("contextmenu", function (event, element) { event.stopEvent(); if (!ctxMenu) { ctxMenu = Ext.create('Ext.menu.Menu', { width:100,

我在geoext 2地图面板上有上下文菜单 我就是这样开始的:

 var ctxMenu;

   Ext.get("mapPanel-body").on("contextmenu", function (event, element) {
        event.stopEvent();
        if (!ctxMenu) {
            ctxMenu = Ext.create('Ext.menu.Menu', {
            width:100,
            height:100,
            margin: '0 0 10 0',        
            items: [{ text: 'test', action: 'test'}]
    });
        }
        ctxMenu.showAt(event.getXY());
        return false;
    });
在地图上单击鼠标右键会打开关联菜单。。。但它会一直打开,直到我从菜单中选择一个项目。在菜单外左键单击它不会关闭它

我正在使用ExtJS4.2.1


为什么会这样?

可能是因为面板不包含默认的contextMenu事件

但您正在使用面板上的定义上下文菜单

对于此问题,您可以通过在配置中使用相同的方法为面板定义单击事件,并检查对象上下文菜单是否存在


如果存在,则使用contextMenuObject.hide隐藏contextMenu。

单击面板不起作用,但我将单击事件添加到openlayers组件中。因此,我接受你的回答:-