Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.11.2009, 07:13
Аватар для greatilya
Интернет-турист
Отправить личное сообщение для greatilya Посмотреть профиль Найти все сообщения от greatilya
 
Регистрация: 01.08.2008
Сообщений: 516

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


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

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

Заранее спасибо....
Вложения:
Тип файла: zip content_tree.zip (5.6 Кб, 0 просмотров)
__________________
VPS от 175 рублей (есть скидки 15% писать в ПМ) Анализ рынка VPS серверов
Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не уверен.
Альберт Эйнштейн
Ответить с цитированием
  #2 (permalink)  
Старый 09.11.2009, 07:50
Аватар для greatilya
Интернет-турист
Отправить личное сообщение для greatilya Посмотреть профиль Найти все сообщения от greatilya
 
Регистрация: 01.08.2008
Сообщений: 516

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

чтобы она закрывала меню при клике в любое место, но не срабатывала при клике на ссылки меню...
__________________
VPS от 175 рублей (есть скидки 15% писать в ПМ) Анализ рынка VPS серверов
Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не уверен.
Альберт Эйнштейн
Ответить с цитированием
  #3 (permalink)  
Старый 09.11.2009, 11:45
Аватар для greatilya
Интернет-турист
Отправить личное сообщение для greatilya Посмотреть профиль Найти все сообщения от greatilya
 
Регистрация: 01.08.2008
Сообщений: 516

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

работает.
__________________
VPS от 175 рублей (есть скидки 15% писать в ПМ) Анализ рынка VPS серверов
Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не уверен.
Альберт Эйнштейн
Ответить с цитированием
  #4 (permalink)  
Старый 09.11.2009, 21:50
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Вот таким должен быть любой топ
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск