Как выделить активный пункт меню?

Енот
Новичо́к, через «о́»
Регистрация
13 Июн 2020
Сообщения
143
#1
Как выделить активный пункт меню на сайте? Пробовал так, но ничего не выходит.
Код:
$(function () {
    var location = window.location.href;
    var cur_url = '/' + location.split('/').pop();
 
    $('.guide-icon-menu').each(function () {
        var link = $(this).find('a').attr('href');
 
        if (cur_url == link) {
            $(this).addClass('active');
        }
    });
});
 
Регистрация
15 Дек 2017
Сообщения
5,067
#2
Делайте поиск без учета регистра по подстроке:
JavaScript:
$(function () {
    var location = window.location.href;
    var cur_url = '/' + location.split('/').pop();
 
    $('.guide-icon-menu').each(function () {
        var link = $(this).find('a').attr('href');
        var reg = new RegExp(cur_url, 'i');
        if (reg.test(link)) {
            $(this).addClass('active');
        }
    });
});
 
Енот
Новичо́к, через «о́»
Регистрация
3 Апр 2020
Сообщения
404
#3
В шаблоне tormund есть такой код
var o = window.location.pathname;
o = "/" == o ? o : o.substr(1), $(".guide-icon-menu").find("li").each(function () {
$("a", this).attr("href") != o && $(this).parent().find(".menu-submenu").hide(), $(this).toggleClass("active", $("a", this).attr("href") == o)
})
Он работает только для главной страницы, пытался поковыряться сам - не вышло.
Не подскажете как исправить для cinemapress?
 
Енот
Новичо́к, через «о́»
Регистрация
13 Июн 2020
Сообщения
143
#4
@Alisa а для tormund как сделать активное меню? С того кода не срабатывает там.
 
Регистрация
15 Дек 2017
Сообщения
5,067
#5
JavaScript:
$(function () {
    var location = decodeURIComponent(window.location.href);
    var cur_url = location.split('/').pop();
    if (!cur_url) return;
    $('.guide-icon-menu li').each(function () {
        var link = $(this).find('a').attr('data-href');
        if (!link) return;
        var reg = new RegExp(cur_url, 'i');
        if (reg.test(decodeURIComponent(link))) {
            $(this).addClass('active');
        }
    });
});
Дальше у каждого пункта меню должен быть тег data-href он имеет в себе подстроку по которой будет идентифицироваться на какой странице находится пользователь.

Например:
URL: https://tormund.cinema.press/type-t-fil6my
В шаблоне: <a href="/<%- page.urls.type %>/<%- page.urls.types.movie %>" data-href="type-t-fil6my">

1602246140183.png
 
Енот
Новичо́к, через «о́»
Регистрация
13 Июн 2020
Сообщения
143
#6
@Alisa Спасибо. А для жанров возможно сделать также? (которое ниже)
Я пробовал, но не меняется хоть в CSS прописано для guide-menu. Заменяю guide-icon-menu на guide-menu и ничего...:cry:
 
Енот
Новичо́к, через «о́»
Регистрация
3 Апр 2020
Сообщения
404
#7
JavaScript:
$(function () {
    var location = decodeURIComponent(window.location.href);
    var cur_url = location.split('/').pop();
    if (!cur_url) return;
    $('.guide-icon-menu li').each(function () {
        var link = $(this).find('a').attr('data-href');
        if (!link) return;
        var reg = new RegExp(cur_url, 'i');
        if (reg.test(decodeURIComponent(link))) {
            $(this).addClass('active');
        }
    });
});
Дальше у каждого пункта меню должен быть тег data-href он имеет в себе подстроку по которой будет идентифицироваться на какой странице находится пользователь.

Например:
URL: https://tormund.cinema.press/type-t-fil6my
В шаблоне: <a href="/<%- page.urls.type %>/<%- page.urls.types.movie %>" data-href="type-t-fil6my">

Посмотреть вложение 4441
В моём случае при открытии ссылки "фильм" выделяется сразу 2 пункта, фильмы и мультфильмы.
Думаю что из-за того что в ссылку "type/мультфильмы" входит слово фильмы.

Не подскажете как выйти из данной ситуации? (не меняя ссылки)
 
Енот
Новичо́к, через «о́»
Регистрация
13 Июн 2020
Сообщения
143
#8
В файле menu ,
В моём случае при открытии ссылки "фильм" выделяется сразу 2 пункта, фильмы и мультфильмы.
Думаю что из-за того что в ссылку "type/мультфильмы" входит слово фильмы.

Не подскажете как выйти из данной ситуации? (не меняя ссылки)
я в menu, заменил на
Код:
<a href="/<%- page.urls.type %>/Мультфильм" data-href="type/Мультфильм">
и все работает. Переход на сайт в раздел мультфильмы будет срабатывать и с внешних ссылок которые идет domen.com/type/мультфильмы , но тогда не будет подсвечиваться.