Почти стандартное меню, шаблон tree
При клике на пункт меню, открывается подменю,
проблема в том, чтобы при клике на другой пункт, нужно, чтоб предыдущий раздел на этом уровне меню закрывался.
Пример:
меню1
--- подменю1
-------подменю11
--- подменю2
-------подменю21
Нужно чтоб было так. Если кликаем на подменю1, откывается подменю 11, если кликаем после этого на подменю2, то открывается подменю21, а открытое ранее подменю 11 закрывается.
Сейчас оно остается открытым.
Просьба помочь в реализации.
Шаблон меню:
Шаблон скрипта
Заранее спасибо за помощь!
При клике на пункт меню, открывается подменю,
проблема в том, чтобы при клике на другой пункт, нужно, чтоб предыдущий раздел на этом уровне меню закрывался.
Пример:
меню1
--- подменю1
-------подменю11
--- подменю2
-------подменю21
Нужно чтоб было так. Если кликаем на подменю1, откывается подменю 11, если кликаем после этого на подменю2, то открывается подменю21, а открытое ранее подменю 11 закрывается.
Сейчас оно остается открытым.
Просьба помочь в реализации.
Шаблон меню:
Код |
---|
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?> <?if (!empty($arResult)):?> <div class="menu-sitemap-tree"> <ul class="nav1"> <? $previousLevel = 0; foreach($arResult as $arItem): ?> <?if ($previousLevel && $arItem["DEPTH_LEVEL"] < $previousLevel):?> <?=str_repeat("</ul></li>", ($previousLevel - $arItem["DEPTH_LEVEL"]));?> <?endif?> <?if ($arItem["IS_PARENT"]):?> <li<?if($arItem["CHILD_SELECTED"] !== true):?> class="close"<?endif?>> <a onClick="OpenMenuNode(this)" ><?=$arItem["TEXT"]?></a> <ul> <?else:?> <?if ($arItem["PERMISSION"] > "D"):?> <li> <a href="<?=$arItem["LINK"]?>"><?=$arItem["TEXT"]?></a> </li> <?endif?> <?endif?> <?$previousLevel = $arItem["DEPTH_LEVEL"];?> <?endforeach?> <?if ($previousLevel > 1)://close last item tags?> <?=str_repeat("</ul></li>", ($previousLevel-1) );?> <?endif?> </ul> </div> <?endif?> |
Шаблон скрипта
Код |
---|
function OpenMenuNode(oThis) { if (oThis.parentNode.className == '') oThis.parentNode.className = 'close'; else oThis.parentNode.className = ''; return false; } |
Заранее спасибо за помощь!