Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Выпадающее меню (https://javascript.ru/forum/events/44408-vypadayushhee-menyu.html)

Batyabest 18.01.2014 16:15

Выпадающее меню
 
Всем привет.
Сделал такое вот выпадающее меню.
Все вроде устраивает, за исключением одного - при клике по пункту меню первого уровня происходит простое разворачивание пунктов 2 уровня.
А как сделать, чтобы происходил переход по ссылке и одновоременное разворачивание пунктов вложенных в этот пункт меню.
То есть если я Кликнул по пункту "Пляжные туры" - то перешел на страницу пляжные туры и теперь у меня все вложенные пункты стали видны. А то они скрываются при каждом обновлении страницы. Неудобно.
<div id="leftmenu">
<h2 class="leftfont">Виды туров:</h2>
<div id="menu_body">
	<ul>
		<li><a href="/" onclick="openMenu('sub_menu_1');return(false)">Пляжные туры</a>
			<ul id="sub_menu_1">
				<li><a href="#">Багамы</a></li>
				<li><a href="#">Болгария</a></li>
				<li><a href="#">Вьетнам</a></li>
			</ul>
		</li>
		<li><a href="/" onclick="openMenu('sub_menu_2');return(false)">Экскурсионные туры</a>
			<ul id="sub_menu_2">
				<li><a href="#">Австрия</a></li>
				<li><a href="#">Бельгия</a></li>
				<li><a href="#">Германия</a></li>
			</ul>
		</li>
		<li><a href="/" onclick="openMenu('sub_menu_3');return(false)">Автобусные туры</a>
			<ul id="sub_menu_3">
				<li><a href="#">Австрия</a></li>
				<li><a href="#">Бельгия</a></li>
				<li><a href="#">Великобритания</a></li>
			</ul>
		</li>
	</ul>
</div>
</div>


var id_menu = new Array('sub_menu_1','sub_menu_2','sub_menu_3');
startList = function allclose() {
	for (i=0; i < id_menu.length; i++){
		document.getElementById(id_menu[i]).style.display = "none";
	}
}
function openMenu(id){
	for (i=0; i < id_menu.length; i++){
		if (id != id_menu[i]){
			document.getElementById(id_menu[i]).style.display = "none";
		}
	}
	if (document.getElementById(id).style.display == "block"){
		document.getElementById(id).style.display = "none";
	}else{
		document.getElementById(id).style.display = "block";
	}
}
window.onload=startList;

Batyabest 18.01.2014 23:44

Что же никто не поможет?

Vlasenko Fedor 19.01.2014 02:14

Решение приведено ниже. Укажите правильные ссылки для корневых пунктов, тогда блок будет отрыт
http://learn.javascript.ru/play/26d4ub

Batyabest 19.01.2014 10:14

Poznakomlus, изменения коснулись только JS кода?

Batyabest 20.01.2014 13:35

Получаются все пункты меню развернутые, а нужно чтобы разворачивался только активный блок.

Batyabest 20.01.2014 13:51

Проиходит только разворачивание пункта меню, без перехода по ссылке


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