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

时间:2014-03-19 21:12:13

标签: extjs extjs4

我在面板上有上下文菜单(geoext 2 map panel) 这就是我如何创建它:

 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;
    });

右键点击地图会打开上下文菜单...但是它会保持打开状态直到我从菜单中选择一个项目(左键单击它不会关闭它)

我使用的是ExtJS 4.2.1

为什么它会像这样?

1 个答案:

答案 0 :(得分:0)

可能原因是,面板不包含默认的contextMenu事件。

但是您通过使用面板上的 来定义contextMenu。

对于此问题,您可以使用相同的 配置为面板定义点击事件,并检查对象 contextMenu 是否存在。

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