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

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

Dimitar

Всем привет!
помогите пожалуйста в решении следующей проблемы.
на сайте есть меню в виде списка:
Код:
<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.
 
цикл нужен, чтобы все закрыть, потом открыть нужную
 
вот, разобрался

Код:
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;
}
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab