Самозакрывающееся Меню В Виде Списка О_о

  • Автор темы Dimitar
  • Дата начала
D

Dimitar

Гость
#1
Всем привет!
помогите пожалуйста в решении следующей проблемы.
на сайте есть меню в виде списка:
Код:
<ul>
<li><a href="../1/">1</a></li>
<li><a href="#" onclick="ShowOrHide(this);">2</a>
<ul>
<li><a href="../2_1/">2_1</a></li>
<li><a href="../2_2/">2_2</a></li>
</ul>
</li>
<li><a href="#" onclick="ShowOrHide(this);">3</a>
<ul>
<li><a href="../3_1/">3_1</a></li>
<li><a href="../3_2/">3_2</a></li>
<li><a href="../3_3/">3_3</a></li>
</ul>
</li>
</ul>
подпункты списка изначально закрыты. при клике на главном пункте списка срабатывает функция ShowOrHide(this), которая открывает подпункты данного пункта списка. вот эта функция:
Код:
function ShowOrHide(obj) 
{
var ul = obj.parentNode.getElementsByTagName('ul')[0];
ul.style.display = (ul.style.display!='block')?('block'):('none');
}
подскажите, как сделать так, чтобы при открытии одного пункта, все остальные пункты меню закрывались. т.е. кликнули на пункт 3, он открылся. а при клике на 2, не просто открывается 2 пункт, но и закрывается 3.
 
D

Dimitar

Гость
#4
вот, разобрался

Код:
var visibleListElement = null;
function ShowOrHide(obj) {
if ( visibleListElement ) visibleListElement.style.display = 'none';
var ul = obj.parentNode.getElementsByTagName('ul')[0];
ul.style.display = (ul.style.display!='block')?('block'):('none');
visibleListElement = ul.style.display=='block' && ul || null;
return false;
}