аккордеон, вкладки меню, назначить класс выбора для обоих - PullRequest
0 голосов
/ 29 января 2011

У меня есть два меню: меню Accordion и меню Tab, для меню Tab есть назначенный класс, выбранный для открытой ссылки, я хочу назначить класс (например) open_menu, аналогично для аккордеонное меню. на самом деле, если класс open_menu будет задан из условия, что в его ul есть ссылка A с классом Selected, это было бы намного лучше, потому что выбранный класс, данный для ссылки, взят из куки, и даже если страница обновилась до этой ссылки выбрано. В любом случае, вы можете увидеть все источники здесь: http://jsfiddle.net/bq6tA/6/ на самом деле конечный продукт, который я хочу, после обновления страницы, будет открыта вкладка аккордеона, а также выбрана ссылка на вкладку меню, которая находится на вкладке этого аккордеона

1 Ответ

1 голос
/ 29 января 2011

См. Рабочую демонстрацию следующего кода здесь.

Я изменил вашу функцию initMenu, чтобы добавить класс open_menu к соответствующему аккордеону (и добавил класс CSS, чтобы указать, что он был добавлен путем изменения фона на зеленый):

function initMenu() {
    // SNIP ...
    $('#menu li a').click(function() {
        // SNIP ...
        if ((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
            $('#menu ul:visible').slideUp('normal')
                                 .siblings('a').removeClass('open_menu');
            checkElement.slideDown('normal')
                        .siblings('a').addClass('open_menu');
            return false;
        }
    });
}

Затем я создал функцию, которая будет вызываться после initMenu, которая будет вызывать щелчок по аккордеону с тем же rel, что и id текущего выбранного элемента:

function showCurrentTab() {
    var curId = $('.tabcontent:visible')[0].id,
        $curLink = $('a[rel="'+curId+'"]');

    $curLink.closest('ul')
            .parent('li')
            .children('a').click();
}

Чтобы выяснить, что здесь происходит, см. Документацию по API для closest, parent и children и свяжите это с вашим HTML структура.

...