1. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

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

Тема в разделе "HTML, CSS, XML, JavaScript", создана пользователем Dimitar, 20 мар 2012.

  1. Dimitar

    Dimitar Гость

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

    -master- Well-Known Member

    Репутация:
    0
    Регистрация:
    14 янв 2012
    Сообщения:
    617
    Симпатии:
    20
    цикл нужен, чтобы все закрыть, потом открыть нужную
     
  3. Dimitar

    Dimitar Гость

    Репутация:
    0
    если Вас не затруднит, напишите подробней...
     
  4. Dimitar

    Dimitar Гость

    Репутация:
    0
    вот, разобрался

    Код:
    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;
    }
     
  5. -master-

    -master- Well-Known Member

    Репутация:
    0
    Регистрация:
    14 янв 2012
    Сообщения:
    617
    Симпатии:
    20
    var ul = obj.nextSibling;
     
Загрузка...
Похожие Темы - Самозакрывающееся Меню Виде
  1. bedrov
    Ответов:
    2
    Просмотров:
    167
  2. KIra
    Ответов:
    0
    Просмотров:
    184
  3. z3RoTooL
    Ответов:
    4
    Просмотров:
    784
  4. bsl
    Ответов:
    1
    Просмотров:
    395
  5. Shouldercannon
    Ответов:
    2
    Просмотров:
    1.366

Поделиться этой страницей