Оказывается делал правильно, только в файле context-menu.js есть злополучная строка:
document.documentElement.onclick = autoHideContextMenu;
которая скрывает меню.... итого нужно как-то по-хитрому переделать функцию:
function autoHideContextMenu(e)
{
if(!contextMenuObj)return;
if(document.all)e = event;
if (e.target) source = e.target;
else if (e.srcElement) source = e.srcElement;
if (source.nodeType == 3) // defeat Safari bug
source = source.parentNode;
var tag1 = source;
var tag2 = source;
var tag3 = source;
if(tag1.parentNode)tag2 = tag1.parentNode;
if(tag1.parentNode.parentNode)tag3 = tag1.parentNode.parentNode;
if(tag1.tagName!='contextMenu' && tag2.tagName!='contextMenu' && tag3.tagName!='contextMenu')contextMenuObj.style.display='none';
}
чтобы она закрывала меню при клике в любое место, но не срабатывала при клике на ссылки меню...