Вопрос по jQuery

Eremkin
На сайте с 29.03.2009
Offline
73
713

Здравствуйте! Помогите пожалуйста, очень нужно реализовать подобное меню на WP, как описано в этой статье http://blog.verha.net/finalization-wiget-nav-menu-update.html

Но с той лишь разницей, что мне нужно, чтобы линк на родительскую страницу был активен.

Пожалуйста, подскажите что надо дописать.

izbushka
На сайте с 08.06.2007
Offline
110
#1

Вы просите сделать за вас? Тогда вам в другой раздел.

Если вы просите помощи, то покажите, что сделали уже сами и что конкретно не получилось..

Eremkin
На сайте с 29.03.2009
Offline
73
#2

<script>

jQuery(document).ready(function() {
// Выбираем все ссылки из .menu-item имеющего во вложении .sub-menu
jQuery('.menu_sidebar_top .menu-item:has(.sub-menu)').children('a').toggle(
function() {
// Показываем вложенный пункт
jQuery(this).parent('.menu-item').children('.sub-menu').css('display', 'block');
}, function() {
// Скрываем вложенный пункт
jQuery(this).parent('.menu-item').children('.sub-menu').css('display', 'none');
});
// Раскрываем родительский пункт меню если активна дочерняя страница
jQuery('.current-menu-item').parent('ul').css('display', 'block');
});
</script>

Это скрипт, который делает меню сайта выпадающим.

Дефолтное состояние меню:

  • Страница 1
  • Страница 2
  • Страница 3

При клике на пункт меню "Страница 1", страница не перезагружается (мы остаемся на прежней странице), а открывается только под-меню:

  • Страница 1
    • Под-страница 1
    • Под-страница 2
    • Под-страница 3
  • Страница 2
  • Страница 3

Мне нужно сделать так, чтобы при клике на "Страница 1", открылась сама страница 1 + развернулось под-меню...

А как это сделать, что дописать - не знаю...

VHS-1980
На сайте с 21.05.2010
Offline
91
#3

Гадость какую-то Вы задумали.

Что значит "открылась" сама страница? перезагрузка страницы должна произойти? Объясните подробнее.

M2
На сайте с 11.01.2011
Offline
342
#4

Я реализовывал подобное с помощью кук... коряво, конечно, но другого метода не нашёл )) суть такая:

1. Пользователь кликает на меню.

2. Система анализирует состояние меню (свёрнуто / развёрнуто) и запоминает его в куках. Т.е. устанавливает куку на комп юзера

3. Если меню свёрнуто - команда развернуть

4. Если развёрнуто - соответственно, свернуть :)

В наше время вероятность, что у юзера отключены куки стремится к нулю. Так что вариант практически на 100% рабочий

К теме прикладываю свой JS-файл (писано на MooTools, но на jQuery несложно переделать). Писал с использованием фреймворка ибо нужна была кроссбраузерность.

PS Там, правда, нет функционала, нужного вам, но я считаю, что этот файл - очень большое подспорье вам в работе :) тут есть всё что я описал выше в 4 пунктах.

zip menu.zip
------------------- Крутые VPS и дедики. Качество по разумной цене ( http://cp.inferno.name/view.php?product=1212&gid=1 ) VPS25OFF - скидка 25% на первый платеж по ссылке выше
izbushka
На сайте с 08.06.2007
Offline
110
#5

[

<script>
jQuery(document).ready(function() {
// Раскрываем родительский пункт меню если активна дочерняя страница
jQuery('.current-menu-item').parent('ul').css('display', 'block');
jQuery('.current-menu-item').parent('.menu-item').children('.sub-menu').css('display', 'block');
});
</script>

Не пробовал, но должно работать :)

Т.е. вам их вообще открывать не надо, вам надо только разворачивать активные.

Eremkin
На сайте с 29.03.2009
Offline
73
#6

Всем спасибо! работает

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий