• 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, 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)';
}
}

подскажите пожалуйста как поменять фон у закрывающегося подпункта
 
M

-master-

вы создайте css классы, и подпихивайте их, не будет такого нагромождения странного кода
 
M

-master-

Код:
for (var i = uls.length;i--;) uls[i].className = '<class with display none>';
ul.className = '<class with display not none>';
 
D

Dimitar

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

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

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