• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы 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.
 
M

-master-

цикл нужен, чтобы все закрыть, потом открыть нужную
 
D

Dimitar

вот, разобрался

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!