Почти стандартное меню, шаблон tree
При клике на пункт меню, открывается подменю,
проблема в том, чтобы при клике на другой пункт, нужно, чтоб предыдущий раздел на этом уровне меню закрывался.
Пример:
меню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;
}
|
Заранее спасибо за помощь!