Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Поменять в скрипте обработку правого клика на левый (https://javascript.ru/forum/events/6058-pomenyat-v-skripte-obrabotku-pravogo-klika-na-levyjj.html)

greatilya 09.11.2009 07:13

Поменять в скрипте обработку правого клика на левый
 
Вложений: 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;


Но такой вариант не проходит.

Буду рад советам....

Заранее спасибо....

greatilya 09.11.2009 07:50

Оказывается делал правильно, только в файле 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';	
		
	}

чтобы она закрывала меню при клике в любое место, но не срабатывала при клике на ссылки меню...

greatilya 09.11.2009 11:45

в функции заменил условие на это:
if(tag1.tagName!='contextMenu' && tag1.tagName!='A' && tag1.tagName!='a' && tag2.tagName!='contextMenu' && tag3.tagName!='contextMenu')contextMenuObj.style.display='none';

работает.

B~Vladi 09.11.2009 21:50

Вот таким должен быть любой топ;)


Часовой пояс GMT +3, время: 22:02.