我有一个包含TreePanel的菜单。用户需要能够使用上下文菜单与TreePanel的节点进行交互。我正在显示附加到TreePanel的contextmenu
事件的函数的上下文菜单。
除了:
之外allowOtherMenus: true
,显示上下文菜单会导致主菜单以及TreePanel消失; allowOtherMenus: true
时,当用户单击TreePanel的空白区域时,上下文菜单不会消失。我正在寻找让上下文菜单工作的方法,就好像TreePanel不是菜单中的项目一样。
样机:
答案 0 :(得分:3)
我发现这似乎适用于FF3 / IE8 / Chrome,虽然它可能会产生尚未出现的副作用。
var hide_context_menu = function () { context_menu.hide() };
var context_menu = new Ext.menu.Menu({
allowOtherMenus: true,
items: [...],
listeners: {
show: function () {
Ext.getDoc().on('mouseup', hide_context_menu);
},
hide: function () {
Ext.getDoc().un('mouseup', hide_context_menu);
}
}
});
当弹出上下文菜单时, allowOtherMenus: true
会阻止MenuMgr隐藏主菜单。将处理程序隐藏到mouseup事件允许处理单击事件。