ExtJS 4-左键单击Ext.panel.panel时如何隐藏上下文菜单?
我在geoext 2地图面板上有上下文菜单 我就是这样开始的: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,
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组件中。因此,我接受你的回答:-