我在面板上有上下文菜单(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
为什么它会像这样?
答案 0 :(得分:0)
可能原因是,面板不包含默认的contextMenu事件。
但是您通过使用面板上的 来定义contextMenu。
对于此问题,您可以使用相同的 配置为面板定义点击事件,并检查对象 contextMenu 是否存在。
如果存在,则使用contextMenuObject.hide()隐藏contextMenu。