Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   меню (обработка собития, переход по ссылке) (https://javascript.ru/forum/dom-window/3724-menyu-obrabotka-sobitiya-perekhod-po-ssylke.html)

Atrox 18.05.2009 15:07

меню (обработка собития, переход по ссылке)
 
доброго времени суток!
появился такой вопрос касательно меню на JavaScript
есть вот такой скрипт обработки события клика:
if(!document.all && document.getElementById) {
    document.all = function(id) {
         return document.getElementById(id);
    }
}
function show(id){
	var menu = 'menu' + id;
	if(document.all(menu) != null){
		if(document.all(menu).style.display == 'none')
        {
			document.all(menu).style.display = '';
		}
		else{
			document.all(menu).style.display = 'none';
		}
	}	
	CloseOthers(id);	
}

function CloseOthers(id)
{
	var MenuNum = 11;
	var n;
	for(n=1; n<=MenuNum; n++)
	if(document.all('menu' + n) != null)
	{
		if (id!=n)
		{
			document.all('menu' + n).style.display = 'none';
		}
	}
}

собственно само меню в упрощенном варианте:
<div>
<a href='ссылка1' onClick='show(1); return false;' >Уровень1</a></div>
<div id='menu1' style='display: none'>
<ul style="list-style-type:square;">
<li style='font-size:11px; margin-bottom: 2px;'>
<a href='ссылка2'>Уровень2</a></li>
</ul>
</div>

при клике мышкой по первому уровню - меню разворачивается как положено, но не происходит перехода по присвоенной "ссылка1".
при клике по любой строке Уровня2 все в порядке - переход происходит по заданной динамической ссылке2.

вопрос заключается в следующем: как сделать так, что бы при нажатии на первый уровень меню разворачивалось и происходил переход по заданной ссылке с сохранением развернутого выше меню? :-? тоже качается и перехода по ссылке второго уровня. необходимо сохранить резвернутое меню :blink:

x-yuri 18.05.2009 17:49

return false отменяет действие по умолчанию (переход по ссылке)
"сохранение развернутого меню" делается на сервере

Gvozd 18.05.2009 19:14

Цитата:

Сообщение от x-yuri
"сохранение развернутого меню" делается на сервере

лучше использовать кукисы

x-yuri 18.05.2009 22:19

сервер, имхо, лучше потому, что меню сразу отображается как надо :)

Gvozd 18.05.2009 22:23

а кукисы проще в реализации, для человека, который задается такого рода вопросом. рискну предположить, он не знаком с серверными языками

Atrox 19.05.2009 09:24

мб через сессии лучше?

Gvozd 19.05.2009 12:35

да, это достаточно хороший вариант

x-yuri 19.05.2009 15:08

а сессии при чем? Информация, которую нужно хранить - текущий пункт меню и "хранится" он в url. Хотя если нужно сохранять текущее состояние всего меню... :-?

Atrox 20.05.2009 09:10

Начальство опять поменяло свои требования :blink:
Теперь необходимо что бы:
1. При переходе по ссылке1 совершался переход по ссылке и при этом развернутое меню сохранялось.
2. И при переходе по ссылке2, второго уровня, то етсь при развертывании меню оно развернутое и оставалось а ссылка выделялась как либо (жирным там или курсивом неважно) и оставалась такой пока пользователь находится на данной странице.

Подскажите как сделать, пожалуйста! я в JavaScript оленевод полный :help:

Kolyaj 20.05.2009 09:46

Цитата:

Сообщение от Atrox
я в JavaScript оленевод полный

Это делается на сервере. Для вас, видимо, на PHP. Раз у вас есть начальство, то, по идее, должен быть и хостинг с PHP :)


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