Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Скрипт работы меню. Проблемка. (https://javascript.ru/forum/project/44083-skript-raboty-menyu-problemka.html)

Лёха36 05.01.2014 20:41

Скрипт работы меню. Проблемка.
 
Здравствуйте. Есть работающее меню "Аккордеон", но не устраивает то, что при активизации пунктов меню "Аккордеон" каждый раз сворачивается, а так как я пользователь начинающий, прошу помощи в содействии отладки скрипта. Необходимо, чтобы при щелчке на пункте развернутого аккордеона он не сворачивался как здесь
Ссылка на мой "аккордеон".:thanks:

danik.js 05.01.2014 20:50

Цитата:

Сообщение от Лёха36
Ссылка на мой "аккордеон".

Да кому она нужна. Сделай рабочий пример http://learn.javascript.ru/play или jsfiddle.net

Лёха36 05.01.2014 20:58

Вот и началось мое обучение. Спасибо, буду работать.

Лёха36 05.01.2014 22:45

Цитата:

Сообщение от danik.js (Сообщение 290670)
Да кому она нужна. Сделай рабочий пример http://learn.javascript.ru/play или jsfiddle.net

Вот пример. Так?
jQuery.fn.initMenu = function() {  
    return this.each(function(){
        var theMenu = $(this).get(0);
        $('.acitem', this).hide();
        $('li.expand > .acitem', this).show();
        $('li.expand > .acitem', this).prev().addClass('active');
        $('li a', this).click(
            function(e) {
                e.stopImmediatePropagation();
                var theElement = $(this).next();
                var parent = this.parentNode.parentNode;
                if($(parent).hasClass('noaccordion')) {
                    if(theElement[0] === undefined) {
                        window.location.href = this.href;
                    }
                    $(theElement).slideToggle('normal', function() {
                        if ($(this).is(':visible')) {
                            $(this).prev().addClass('active');
                        }
                        else {
                            $(this).prev().removeClass('active');
                        }    
                    });
                    return false;
                }
                else {
                    if(theElement.hasClass('acitem') && theElement.is(':visible')) {
                        if($(parent).hasClass('collapsible')) {
                            $('.acitem:visible', parent).first().slideUp('normal', 
                            function() {
                                $(this).prev().removeClass('active');
                            }
                        );
                        return false;  
                    }
                    return false;
                }
                if(theElement.hasClass('acitem') && !theElement.is(':visible')) {         
                    $('.acitem:visible', parent).first().slideUp('normal', function() {
                        $(this).prev().removeClass('active');
                    });
                    theElement.slideDown('normal', function() {
                        $(this).prev().addClass('active');
                    });
                    return false;
                }
            }
        }
    );
});
};

$(document).ready(function() {$('.menu').initMenu();});

Какая функция зафиксирует подменю, чтобы оно не закрывалось?


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