Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   выделить активный пункт меню и родительский (https://javascript.ru/forum/dom-window/72248-vydelit-aktivnyjj-punkt-menyu-i-roditelskijj.html)

EvgenyTryap 18.01.2018 04:30

выделить активный пункт меню и родительский
 
Нужна помощь!
Необходимо выделить активный пункт меню и его последний родительский пункт меню.

Например: перейдя по ссылке "страница 1", нужно добавить класс active активному пункту меню "страница 1" и его последнему родительскому пункт меню "подкатегория 1".
<div class="menu">
<span><a href="/category1">категория 1</a></span>
<span><a href="/category1/subcategory1">подкатегория 1</a></span>
<span><a href="/category1/subcategory1/page1">страница 1</a></span>
</div>


Есть вот такой код, но он добавляет класс active всем родительским пунктам меню.
$(function () {
    var location = window.location.href;
    $('.menu span').each(function () {
        var link = $(this).find('a').attr('href');
        if (location.indexOf(link) !== -1)
        {
            $(this).addClass('active');
        }
    });
});

j0hnik 18.01.2018 04:40

Они у вас все братские, с не закрытыми тегами </a>

EvgenyTryap 18.01.2018 04:42

это случайно))исправил

j0hnik 18.01.2018 04:47

тег то закрыли, а родительскими они не стали.
у них предки <span> и <div class="menu">

j0hnik 18.01.2018 05:12

в данном случае скрипт вам и добавит класс к двум пунктам
'/category1' не будет матчится к этому урлу site.ru/category/subcategory1/page1

EvgenyTryap 18.01.2018 14:47

Спасибо за помощь! А не могли бы Вы показать как это должно быть, а то я не совсем понимаю что вы имеете в виду.


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