Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Схлопывающееся меню (https://javascript.ru/forum/dom-window/11680-skhlopyvayushheesya-menyu.html)

artwalek 07.09.2010 12:20

Схлопывающееся меню
 
Всем привет.
Есть скрипт, который при раскрытии родителя и запроса дочки не схлопывается.

<script type="text/javascript" language="javascript">
	function setCookie (name, value, expires, path, domain, secure) {
		  document.cookie = name + "=" + escape(value) +
			((expires) ? "; expires=" + expires : "") +
			((path) ? "; path=" + path : "") +
			((domain) ? "; domain=" + domain : "") +
			((secure) ? "; secure" : "");
	}
	
	function getCookie(name) {
		var cookie = " " + document.cookie;
		var search = " " + name + "=";
		var setStr = null;
		var offset = 0;
		var end = 0;
		if (cookie.length > 0) {
			offset = cookie.indexOf(search);
			if (offset != -1) {
				offset += search.length;
				end = cookie.indexOf(";", offset)
				if (end == -1) {
					end = cookie.length;
				}
				setStr = unescape(cookie.substring(offset, end));
			}
		}
		return(setStr);
	}
	
	function menuClick(menu_id){
		if(document.getElementById('td'+menu_id).style.display=='block'){
			document.getElementById('td'+menu_id).style.display='none';
			setCookie ("clm", "", "", "/", "", "");
		} else {
			document.getElementById('td'+menu_id).style.display='block';
			setCookie ("clm", menu_id, "", "/", "", "");	
		}
	}
	
	function showMenus() {
		var i=getCookie("clm");
		if(document.getElementById('td'+i)) 
			document.getElementById('td'+i).style.display='block';	
	}
</script>


На онлоад вызываем:
<ul<a onclick="menuClick('1')" href="#">Меню</a>
 <div id="td1" style="display: none;">
  <li><a href="1.html">Меню 1</a></li>
  <li><a href="2.html">Меню 2</a></li>
 </div>
</ul>


Но проблема в том, что когда хочу распохнуть другие разделы меню предыдущее не схлопывается.

Как этого добиться?
Спасибо.

ksa 07.09.2010 14:44

Цитата:

Сообщение от artwalek
Но проблема в том, что когда хочу распохнуть другие разделы меню предыдущее не схлопывается.

Как этого добиться?

Как вариант просто пройтись в цикле по другим "соседним" элементам и "закрыть" их...

ksa 07.09.2010 14:46

Цитата:

Сообщение от artwalek (Сообщение 69986)
На онлоад вызываем:
<ul<a onclick="menuClick('1')" href="#">Меню</a>
 <div id="td1" style="display: none;">
  <li><a href="1.html">Меню 1</a></li>
  <li><a href="2.html">Меню 2</a></li>
 </div>
</ul>

Вот это какая-то полная ерунда, а не разметка... :no:


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