Как раскрыть сайдбар на нужной странице в моем случае

При открытии товара, который находится в подкатегории одной из категорий, сайдбар выглядит так:

а должен быть так:

то есть категория и подкатегория раскрыты где виден активный пункт меню. Вот код:
var $offCanvasNav = $('.offcanvas-navigation'),
    $offCanvasNavSubMenu = $offCanvasNav.find('.sub-menu-mobile');

/*Add Toggle Button With Off Canvas Sub Menu*/
$offCanvasNavSubMenu.parent().prepend('<span class="menu-expand"><i></i></span>');

/*Close Off Canvas Sub Menu*/
$offCanvasNavSubMenu.slideUp(0);

/*Category Sub Menu Toggle*/
$offCanvasNav.on('click', 'li a, li .menu-expand', function(e) {
    var $this = $(this);
    if ( ($this.parent().attr('class').match(/\b(menu-item-has-children|has-children|has-sub-menu)\b/)) && ($this.attr('href') === '#' || $this.hasClass('menu-expand')) ) {
        e.preventDefault();
        if ($this.siblings('ul:visible').length){
            $this.parent('li').removeClass('active');
            $this.siblings('ul').slideUp();
        }  else {
            $this.parent('li').addClass('active');
            $this.closest('li').siblings('li').removeClass('active').find('li').removeClass('active');
            $this.closest('li').siblings('li').find('ul:visible').slideUp();
            $this.siblings('ul').slideDown();
        }
    }
});
вот верстка:

Помогите с кодом, буду рад любой помощи!
Владислав
03 апреля 2023, 16:36
modx.pro
255
0

Комментарии: 1

Артур Шевченко
03 апреля 2023, 17:45
0
1. Открывать и закрывать нужно через класс, а не через инлайновый стили.
2. В чанке родителя делай проверку
{$_modx->resource.parent == $id ? 'open' : ''}
3. В чанке потомка делай проверку
{$_modx->resource.id == $id ? 'active' : ''}
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1