И снова подсветка текущего раздела

Рейтинг: 0Ответов: 1Опубликовано: 15.03.2015

Здравствуйте!

Есть скрипт подсветки раздела - добавляет класс родительскому элементу. Работает даже при передаче в адресной строке GET-параметров и с учётом вложенности каталога. НО! У меня есть каталог /magazine/male_articles/, а есть вложенные каталоги, например /magazine/male_articles/some_category/. Когда переходишь в категорию, то класс добавляется и текущему разделу, и общему разделу /magazine/male_articles/, то бишь этот раздел главный, а остальные - вложенные, и так как он присутствует в адресе каждой вложенной ссылки, то и подсвечивается постоянно. Как можно убрать с него подсветку при выборе подкатегорий?

Сам скрипт:

$(function () {
$('.magazine_nav ul li a').each(function () {
var location = window.location.href
var link = this.href
var result = location.match(link);

if(result != null) this.parentNode.className = "active_article";
});
});

Ответы

▲ 1

Можно сделать, например, так:

    $('.magazine_nav li a').each(function () {
      var location = "http://site.ru/make_url_1/make_sub_url/"; // Вставил для примера в вашем случае это window.location.href
      // var location = "http://site.ru/make_url_1/"; Для проверки верхнего пункта меню
      var locationArray = location.split('/');
      var locationPath = locationArray[locationArray.length-2];
      var link = this.href.split('/');
      var linkPath = link[link.length-1];

      if(linkPath ==  locationPath) this.parentNode.className = "active_article";
  });

UPD.

Без примера нынче никуда, чтобы проверить работоспособность, можно раскомментировать другую строку с location.