Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.01.2018, 10:00
Интересующийся
Отправить личное сообщение для Dayros Посмотреть профиль Найти все сообщения от Dayros
 
Регистрация: 23.01.2017
Сообщений: 11

Выделение активного пункта меню для статьи
Здравствуйте, на сайте в главном меню ссылки ведут на категории статей, а отдельные статьи не имеют своих пунктов в меню. Если листать по категориям, то пункты меню подсвечиваются таким скриптом:
$(document).ready(function(){
    var my_link = location.pathname;
    $('.list-menu li a[href="'+my_link+'"]').parent().addClass('active');
});

<ul class="list-menu">
     <li class="hidden"><a href="/">Главная</a></li>
     <li><a href="/категория1">Категория1</a></li>
     <li><a href="/категория2">Категория2</a></li>
     <li><a href="/категория3">Категория3</a></li>
     <li><a href="/категория4">Категория4</a></li>
</ul>


Вопрос как сделать выделения пункта меню для категории, когда мы находимся на странице статьи из этой категории?

На всякий случай еще раз объясню) есть ссылка в меню http://localhost/категория1/ - она нормально подсвечивается когда активна, но если перейти на статью из этой категории то скрипт не работает для урла http://localhost/категория1/статья1, потому что такой ссылки нет в меню. А нужно оставить активным пункт данной категории

Последний раз редактировалось Dayros, 18.01.2018 в 10:04.
Ответить с цитированием
  #2 (permalink)  
Старый 18.01.2018, 10:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Dayros,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">  .active {
    background-color: #FF0000;
  }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
  var my_link = "http://localhost/категория1/статья1";  //  var my_link = location.pathname;
  $('.list-menu li a').filter(function() {
  var href = this.getAttribute("href");
  return  href.length > 1 && my_link.indexOf(href) !== -1;
}).parent().addClass('active');
});
  </script>
</head>

<body>
<ul class="list-menu">
  <li class="hidden"><a href="/">Главная</a></li>
  <li><a href="/категория1">Категория1</a></li>
  <li><a href="/категория2">Категория2</a></li>
  <li><a href="/категория3">Категория3</a></li>
  <li><a href="/категория4">Категория4</a></li>
</ul>


</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 18.01.2018, 11:26
Интересующийся
Отправить личное сообщение для Dayros Посмотреть профиль Найти все сообщения от Dayros
 
Регистрация: 23.01.2017
Сообщений: 11

Спасибо большое, все работает как нужно)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Якорное меню для секций внутри блока Perepelenok Общие вопросы Javascript 3 19.08.2016 19:41
Скролл активного пункта меню в верх страницы Goopy Javascript под браузер 6 07.06.2016 13:40
Ищу jQuery плагин для создания меню Zeboton jQuery 9 15.09.2014 15:31
Как переделать простое меню для сайта на javascript? denspb Работа 2 16.07.2010 01:25
Проблема с меню для кнопки в Гриде progi2007 ExtJS 0 03.08.2009 14:16