Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   При переходе на другую страницу открытая секция аккордеона должна оставаться открытой (https://javascript.ru/forum/jquery/36178-pri-perekhode-na-druguyu-stranicu-otkrytaya-sekciya-akkordeona-dolzhna-ostavatsya-otkrytojj.html)

duke8761 06.03.2013 15:19

При переходе на другую страницу открытая секция аккордеона должна оставаться открытой
 
Есть меню каталога, которое выводится из базы скриптом:
<ul class="menu">
<li><a class="" href="/cathegory/item/85">Экскаваторы</a>
<ul class="menu">
<li><a class="" href="/cathegory/item/86">Гусеничные экскаваторы</a></li>
<li><a class="" href="/cathegory/item/87">Колесные экскаваторы</a></li>
<li><a class="activeLeft" href="/cathegory/item/88">Мини - экскаваторы</a></li>
</ul>
</li>
<li><a class="" href="/cathegory/item/89">Погрузчики</a>
<ul class="menu">
<li><a class="" href="/cathegory/item/90">Фронтальные погрузчики</a></li>
<li><a class="" href="/cathegory/item/91">Телескопические погрузчики</a></li>
</ul>
</li>
<li><a class="" href="/cathegory/item/92">Карьерная техника</a>
<ul class="menu">
<li><a class="" href="/cathegory/item/93">Экскаваторы</a></li>
<li><a class="" href="/cathegory/item/94">Самосвалы</a></li>
</ul>
</li>
</ul>

как сделать так, чтобы при переходе на страницу подраздела, например /cathegory/item/93, соответствующий раздел в товарном меню оставался открытым?
пример находится по адресу:http://technika.zerna.ru/
Спасибо

danik.js 06.03.2013 16:30

Вобще, это должен делать сервер. Скрипт на js будет костылем.
Костыль реализуется так:
проходим по всем ссылкам в меню (циклом или через each), сравниваем с location.href. Нашли нужную ссылку - триггерим клик по родительскому li, или по самой ссылке, в зависимости от реализации аккордиона.
Хотя не, подождите. Ща прибежит какая нибудь обезьянка и набросает вам готовый код :)

duke8761 06.03.2013 16:51

да, да, мне бы код готовый, не силен я в js
у меня сейчас вот этот:

function initMenu() {
$('.menu ul').hide();
$('.menu ul:first').hide();
$('.menu li a').click(
function() {
var checkElement = $(this).next();
if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
return false;
}
if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
$('.menu ul:visible').slideUp('normal');
checkElement.slideDown('normal');
return false;
}
}
);
}
$(document).ready(function() {initMenu();});

что в него нужно добавить, как изменить?

danik.js 06.03.2013 17:35

Цитата:

Сообщение от duke8761
что в него нужно добавить, как изменить?

может теги
[js] тут код [/js]
?

duke8761 06.03.2013 17:40

function initMenu() {
$('.menu ul').hide();
$('.menu ul:first').hide();
$('.menu li a').click(
function() {
var checkElement = $(this).next();
if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
return false;
}
if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
$('.menu ul:visible').slideUp('normal');
checkElement.slideDown('normal');
return false;
}
}
);
}
$(document).ready(function() {initMenu();});



чтоб меню работало как на сайте thgr.ru

danik.js 06.03.2013 17:42

Ну теперь все ок, осталось дождаться какой-нибудь обезьянки )


Часовой пояс GMT +3, время: 14:51.