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

266
08 июля 2018, 22:30

Есть некий каталог товаров с подкатегориям. Каталог раскрываются при клике.При переходе на какую-либо страницу, каталог закрывается(сворачивается). Нужно сделать так, чтобы он не закрывался, в той подкатегории откуда был сделан переход. Ссылка на сайт: http://pavelbq1.beget.tech/%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3-%D0%BC%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D0%BE%D0%B2/ .

Answer 1

Самый короткий путь решения я описал ниже. Я хочу объяснить логику, а реализация функции может отличаться. Вам нужно синхронизировать ваш активный URL и боковое меню.

Решение:

Сначала добавьте к span элементам меню аттрибут data-url="кровельные-материалы" согласно логике. Мы будем позже использовать этот аттрибут, чтобы найти span, который должен быть открыт при текущем URL.

При загрузке страницы вызовите функцию ниже, которая проверит какой URL сейчас активен, и кликнет по этому эл-ту автоматически, чтобы его открыть.

function openSideMenuBasedOnUrl() {
    // взять URL и перевести кириллицу
    var url = decodeURI(window.location.pathname);
    // заменить '/' вначале
    url = url.replace(/^\//, '');
    var urlParts = url.split('/');
    var firstUrlPart = urlParts[0];
    if (firstUrlPart) {
        // найти эл-т меню по аттрибуту
        var $span = $.find('#main span[data-url="' + firstUrlPart + '"]')[0];
        // тут нужно добавить проверку, что пункт меню не открыт уже
        // имитация клика
        if ($span) $span.click();
    }
}
READ ALSO
Откуда серая линия между блоками?

Откуда серая линия между блоками?

Иногда появляется серая линия между 2 блокамиПри увеличении и уменьшении масштаба она исчезает

284
как разрешить всплывающие окна?

как разрешить всплывающие окна?

как разрешить всплывающие окна во всех браузерах или при загрузке страницы обязательно спросить пользователя разрешение на использование...

215
Центрировать текст относительно ромба

Центрировать текст относительно ромба

Подскажите, как его отцентрировать, чтобы как на фото было?

210
Как получить высоту в inline блоке Fancybox

Как получить высоту в inline блоке Fancybox

Подскажите пожалуйста, пытаюсь получить высоту определенного блока в модальном окне Fancybox, но постоянно получаю 0, понимаю что нужно сделать...

238