Не удается выделить активными пункты меню "Статьи" и "Новости"

голоса: 0

Доброго времени!

Меню у меня на сайте написано вручную в хедере (т.е. без стандартного блока $SMENU$). Код меню представляет собой список ul.

Я решил выделить активный пункт меню (страница, на который сейчас находится пользователь) цветом. У меня это получилось с помощью скрипта

 

Этот код я разместил на "страницах сайта" в разделе дизайна, а также на странице категории интернет-магазина (модуль интернет-магазин), странице архива новостей и материала и комментариев к нему (модуль новости) и главной странице каталога статей и материала и комментариев к нему (модуль статьи). Jquery подключаю на каждой странице.

Таблица стилей у меня подключена на всех страницах (в т.ч. у модулей статьи и новсти) одна - основная таблица my css. У модуля интернет-магазин таблица своя. В обоих таблицах нужные классы прописаны.

Все работает, КРОМЕ модулей статьи и новости, там не работает ни на главной странице, ни на странице материалов и комментариев к нему.

Прошу помочь разобраться, почему именно на этих страницах указанный скрипт не работает. Буду очень благодарен за любую помощь!!

Адрес сайта wzch.ru
| Автор: | Категория: Меню сайта

Ответов: 1

Голоса: +1
 
Лучший ответ

Ну так вы смотрите что у вас написано в адресной строке и какая ссылка в меню. В адресной строке у вас

http://wzch.ru/news/

а в меню

/news 

Т.е. нет слеша в конце. Для js это естественно две разных ссылки. Т.е. вам нужно просто добавить слеш в конце ссылки в меню. Ну и по синтаксису лучше так

$(function() {
    var url=document.location.href;
    $('.header a').each(function() {
        if ( this.href==url ) {
            $(this).addClass('act');
        };
    });
});

Ну и если честно, то такое делается системными операторами(условиями). Т.е. в меню пишете

<li class="nav">
    <a href="/news/" class="white<?if($MODULE_ID$=='news')?> act<?endif?>">НОВОСТИ</a>
</li>

Т.е. добавили условие. Если модуль новости, то к ссылке добавить класс act 

| Автор:
Выбор ответа лучшим | | Автор: Антон Чагин
Ого, супер-круто, все работает!!)) Спасибо огромное!! Со слешем конечно - невнимательность, а вот на счет условия это Вы мне прям глаза открыли, очень интересная реализация, никогда раньше не видел такого, сколько лазил по форумам и т.д. С помощью операторов же столько можно делать теперь))
...