Автор Тема: Подправить скрипт меню  (Прочитано 5429 раз)

Оффлайн Dentar

  • Пользователь
  • **
  • Сообщений: 47
    • Просмотр профиля
Подправить скрипт меню
« : Мая 01, 2013, 02:42:00 pm »
Здравствуйте, уважаемые специалисты!

Срочно требуется помощь за вебмани)
Нужно подправить скрипт меню категорий на сайте organo.in.ua. Не совсем корректно работает аккордеон.
Приведу пример:
Если зайти на сайте в категорию: "Одежда" - "Летняя", а потом кликнуть на товар Mercedes SLR (из блока "Хит продаж"), то мы попадаем в карточку товара "Mercedes SLR", но в меню-аккордеоне останется развернутой категория: "Одежда", хотя должна была развернуться категория "Автомобили". И такая ситуация наблюдается при переходе по любой ссылке, находящейся вне блока меню-аккордеон.
Вот на всякий случай скрин с пояснениями:

Оффлайн Dentar

  • Пользователь
  • **
  • Сообщений: 47
    • Просмотр профиля
Re: Подправить скрипт меню
« Ответ #1 : Мая 01, 2013, 06:43:11 pm »
А вот собственно и сам скрипт менюхи из файла category_tree.tpl.html. (Движок 5.02).
Взято из этой темы: http://forum.legosp.net/index.php/topic,566.0.html:

{literal}
<script type="text/javascript">
$(document).ready(function() {
$("#accordion > li > div").click(function() {
if(false == $(this).next().is(':visible')) {
$('#accordion ul').slideUp(300);
}
$(this).next().slideToggle(300);
});

$("#accordion > li > div > a").attr('href', 'javascript:void(null)');

$("#accordion > li").click(function() {
var id_menu = $(this).attr('id');
$.cookie('idmenu', id_menu, {expires: 1, path: '/'});
});

$(document).ready(function(){
$('#accordion ul').find("li, .selected").slideDown(300);
});

if ($.cookie('idmenu')) {
$('#'+$.cookie('idmenu')+' > ul').show();
}
});
</script>
{/literal}

<STYLE>
#accordion {
list-style: none;
padding: 0 0 0 0;
width: 150px;
}
#accordion div {
display: block;
background-color: #FF9927;
font-weight: bold;
margin: 1px;
cursor: pointer;
padding: 5px 5px 5px 7px;
list-style: circle;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border-radius: 10px;
}
#accordion ul {
list-style: none;
padding: 0 0 0 0;
}
#accordion ul{
display: none;
}
#accordion ul li {
font-weight: normal;
cursor: auto;
background-color: #fff;
padding: 0 0 0 7px;
}
#accordion a {
text-decoration: none;
}
#accordion a:hover {
text-decoration: underline;
}

#accordion a.selected {
color: black;
}
</STYLE>

{if !$categoryID}
<script type="text/javascript">
$.cookie('idmenu', null);
$('#accordion ul:eq(0)').show();
</script>
{/if}

<ul  id="accordion" class="glossymenu">
    {assign var="old" value=0}
    {assign var="ja" value=0}
    {section name=i loop=$categories_tree}
        {if $categories_tree[i].level==$old && !$smarty.section.i.first}</li> {elseif $categories_tree[i].level>$old} <ul> {/if}
        {if $categories_tree[i].level<$old && $old>0}</li>{/if}
        {if $categories_tree[i].level<$old} </ul> {/if}
        <li{if $categories_tree[i].level==0} id="i{$categories_tree[i].categoryID}"{/if}><div>{if $categoryID == $categories_tree[i].categoryID} >>>{/if}<a href="./{$categories_tree[i].hurl}" {if $categoryID == $categories_tree[i].categoryID} class="selected" {/if}>{$categories_tree[i].name}</a></div>
    {assign var="old" value= $categories_tree[i].level}
    {/section}
</li></ul>
« Последнее редактирование: Мая 01, 2013, 06:45:52 pm от Dentar »