Здравствуйте! Прошу помочь.
Пробую корректировать скрипт меню-аккордеон. Получилось дописать добавление класса дочерней ссылке элемента 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?