Сделать класс активным для всех путей URL
Доброго времени суток, форумчане!
Собственно, столкнулся вот с такой задачей: на сайте есть меню, нужно для активного текущего пункта меню (для его подсветки) каждый раз устанавливать class="active". Эту проблему решил вот так: jQuery(document).ready(function() { $('#navigation-main a[href="'+ location.pathname + '"]').addClass('active'); }); Тут все работает. Однако, вопрос вот в чем: если я, к примеру, перехожу в пункт меню "Новости" по адресу: http://example.com/news, то пункт меню подсвечивается и class="active" устанавливается без проблем, а что если я смотрю какую-то новость данного раздела с адресом: http://example.com/news/some-news - то в таком случае ссылка уже не подсвечивается. Выход - использование регулярки, или что посоветуете? Заранее большое спасибо!:) |
Почему класс ставит клиент, а не сервер во время генерации страницы?
|
Цитата:
http://jquery-docs.ru/Selectors/attr...attributevalue |
Цитата:
|
Цитата:
Цитата:
jQuery(document).ready(function() { $('#navigation-main a[href^="'+ location.pathname + '"]').addClass('active'); }); пробовал - по-прежнему, безрезультатно... |
eXTrEMe888,
В данном случае, по хорошему, сервер должен определить текущий раздел сайта и ставить класс нужному элементу. Как минимум это поможет избежать "моргания" элемента, в следствие отложенной установки класса. |
Вы правы. На данный момент как раз-таки пункт меню выделяется "с опозданием", не так как хотелось бы (чтобы до/при загрузке страницы). А как и какими средствами лучше это сделать, не подскажете? Буду благодарен за помощь.
|
Цитата:
|
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 08:54. |