Поменять в скрипте обработку правого клика на левый
Вложений: 1
Во вложении у меня стандартный скрипт для создания древовидного меню. Он состоит из 3 файлов: ajax.js, context-menu.js, folder-tree.js.
Не получается в файле folder-tree.js сменить обработку всплывающего меню с правой кнопки мыши на левую. Там написано: if(contextMenuActive)aTag.oncontextmenu = showContextMenu; aTag.onclick = showHideNode; Я меняю на: //if(contextMenuActive)aTag.oncontextmenu = showContextMenu; aTag.onclick = showContextMenu; Но такой вариант не проходит. Буду рад советам.... Заранее спасибо.... |
Оказывается делал правильно, только в файле 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';
}
чтобы она закрывала меню при клике в любое место, но не срабатывала при клике на ссылки меню... |
в функции заменил условие на это:
if(tag1.tagName!='contextMenu' && tag1.tagName!='A' && tag1.tagName!='a' && tag2.tagName!='contextMenu' && tag3.tagName!='contextMenu')contextMenuObj.style.display='none'; работает. |
Вот таким должен быть любой топ;)
|
| Часовой пояс GMT +3, время: 22:04. |