Заблудился В Списке Узлов. Помогите

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

  1. Dimitar

    Dimitar Гость

    на сайте есть меню такого вида:
    Код (Text):
    <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); открывает подпункты по клику на ссылке. если пытаемся открыть несколько пунктов, предыдущий пункт закрывается. вот как она выглядит:
    Код (Text):
    function ShowOrHide(obj, name)
    {
    var uls = obj.parentNode.parentNode.getElementsByTagName('ul'),
    ul = obj.parentNode.getElementsByTagName('ul')[0];
    for (var i = uls.length;i--;) uls[i].style.display = 'none';
    ul.style.display = 'block';
    if (ul.style.display == 'block') //--блок подменю открыт
    {
    obj.style.backgroundImage = 'url(../_img_main/_menu_btn/bttn_'+name+'_on.jpg)';
    }
    }
    подскажите пожалуйста как поменять фон у закрывающегося подпункта
     
  2. -master-

    -master- Well-Known Member

    Регистрация:
    14 янв 2012
    Сообщения:
    629
    Симпатии:
    19
    вы создайте css классы, и подпихивайте их, не будет такого нагромождения странного кода
     
  3. Dimitar

    Dimitar Гость

    мне бы пример... а то совсем тяжко (
     
  4. -master-

    -master- Well-Known Member

    Регистрация:
    14 янв 2012
    Сообщения:
    629
    Симпатии:
    19
    Код (Text):
    for (var i = uls.length;i--;) uls[i].className = '<class with display none>';
    ul.className = '<class with display not none>';
     
  5. Dimitar

    Dimitar Гость

    вот как я решил эту проблему)

    Код (Text):
    function ShowOrHide(obj, name)
    {
    var uls = obj.parentNode.parentNode.getElementsByTagName('ul'),
    ul = obj.parentNode.getElementsByTagName('ul')[0];
    for (var i = uls.length;i--;) {uls[i].style.display = 'none';uls[i].parentNode.firstChild.style.backgroundImage='url(../_img_main/_menu_btn/bttn_'+name+'_off.jpg)'};
    ul.style.display = 'block';
    obj.style.backgroundImage = 'url(../_img_main/_menu_btn/bttn_'+name+'_on.jpg)';
    }
     
Загрузка...

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