Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Добавление класса всем родительским элементам списка (https://javascript.ru/forum/dom-window/55519-dobavlenie-klassa-vsem-roditelskim-ehlementam-spiska.html)

Torawhite 01.05.2015 22:06

Добавление класса всем родительским элементам списка
 
Здравствуйте! Прошу помочь.
Пробую корректировать скрипт меню-аккордеон. Получилось дописать добавление класса дочерней ссылке элемента li:
Код:

$parent.addClass('active').children('a').addClass('parent');
Нужно добавлять также классы при поиске скриптом класса active, часть скрипта, где описывается поиск класса:
Код:

MetisMenu.prototype.init = function() {
        var $this = this;

        this.$element.find('li.active').has('ul').children('ul').addClass('collapse in');
        this.$element.find('li').not('.active').has('ul').children('ul').addClass('collapse');

        //add the 'doubleTapToGo' class to active items if needed
        if (this.options.doubleTapToGo) {
            this.$element.find('li.active').has('ul').children('a').addClass('doubleTapToGo');
        }

        this.$element.find('li').has('ul').children('a').on('click.metisMenu', function(e) {
            var self = $(this);
            var $parent = self.parent('li');
            var $list = $parent.children('ul');
            e.preventDefault();

            if ($parent.hasClass('active')) {
                $this.hide($list);
            } else {
                $this.show($list);
            }

            //Do we need to enable the double tap
            if ($this.options.doubleTapToGo) {
                //if we hit a second time on the link and the href is valid, navigate to that url
                if ($this.doubleTapToGo(self) && self.attr('href') !== '#' && self.attr('href') !== '') {
                    e.stopPropagation();
                    document.location = self.attr('href');
                    return;
                }
            }
        });
    };

Как можно здесь дописать код так, чтобы, если в списке есть класс active, то он всем родительским элементам присваивал также класс active, дочерним ссылкам присваивал класс parent и дочерним спискам класс collapse in - то есть раскрывал список. Если не найдёт, то присваивал класс collapse?


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