менюшка на JavaScript

kuzalexandr

Новичок
менюшка на JavaScript

есть менюшка

PHP:
function showHideOne(sloi) {
    var s = document.getElementById(sloi).style;
	if(s.display == "none") {
		s.display = "block";
	} else {
		s.display = "none";
	}
}

<ul>
<li><a href="#" onclick="showHide('1');">Текст 1</a>
<ul id="1" style="display: none;">
<li><a href="index.php">меню 1</a></li>
<li><a href="index.php">меню 2</a></li>
<li><a href="index.php">меню 3</a></li>
</ul>
</li>
<li><a href="#" onclick="showHide('2');">Текст 2</a>
<ul id="2" style="display: none;">
<li><a href="index.php">меню 1</a></li>
<li><a href="index.php">меню 2</a></li>
<li><a href="index.php">меню 3</a></li>
</ul>
</li>
</ul>
так вот, как сделать так чтобы при переходе по ссылке менюшка не закрывалась? не становилась display: none
 

MagnetiZ

Новичок
Не нагружай явой страницу для менюшки.
Сейчас она лаконично делается средствами css.
 

Dovg

Продвинутый новичок
[telepatmode]
На стороне сервера мы знаем, какую страницу попросил пользователь.
У соответственного элемента меню надо прописать style="display: inline;"
[/telepatmode]
 

kuzalexandr

Новичок
на стороне сервера не получится прописать стиль, потому что менюшки могут быть от 5 до 10 уровней вложения
 

RoLex

Новичок
1. на будущее.
аккуратнее с
style="display: inline;"
или block
чтобы отобразить элемент (заменить display ="none") средствами js достаточно прописать

obj.style.display = "";
пустое значение. в этом случае элемент отображается как обычно, если не применять стили к элементу.

так как если вы меняете на block, то поведение объектов может быть разным в разных броузерах (если вы конечно до этого не планировали, что нужный элемент будет отображаться как block).

аналогично c inline

короче, суть сказанного в том :) что, если меняете display, то важно понимать, при каком значении как будет себя вести элемент. причем проверяйте во всех популярных броузерах.
и смотрите, так ли элемент себя ведет, как вы ожидаете.

2. для MagnetiZ
а он нигде не нагружает меню js.
меню реализованные на css в любом случае используют 1, 2 ф-ции js, которые просто подменяют классы стилей.

3. как правильно сказал Dovg о том, что ты знаешь какую стр запросил пользователь, то ты можешь в условиях определить, если запрошена такая-то стр, то родительский элемент ul с id="number" нужно отобразить.

-~{}~ 06.02.08 14:23:

возможно, тебе надо будет в твою ф-цию showHide добавить еще 1 или 2 параметра.
 

Dovg

Продвинутый новичок
kuzalexandr
на стороне сервера не получится прописать стиль, потому что менюшки могут быть от 5 до 10 уровней вложения
Не уловил связи между уровнем вложения и знанием текущей страницы (или ты на стороне сервера не знаешь родителя данной страницы :) ? )
 
Сверху