Активация текущего пункта меню.
Всем доброго дня!
Облазил весь гугл, не могу допетрить, как с помощью jquery активировать текущую строку менюшки. Менюшка выглядит так:
<div class="navbar">
<div class="navbar-inner">
<div class="container">
<ul class="nav">
<li><a href="/index.php?ukey=auxpage_service">Сервис</a></li>
<li><a href="/index.php?ukey=news">Акции</a></li>
<li><a href="/index.php?ukey=auxpage_articles">Статьи</a></li>
<li><a href="/index.php?ukey=auxpage_foto"> Фотогалерея </a></li>
<li><a href="/index.php?ukey=response">Вопрос-Ответ</a></li>
<li><a href="/index.php?ukey=auxpage_contact">Контакты</a></li>
<li><a href="/index.php?ukey=auxpage_about">О Компании</a></li>
</ul>
</div>
</div>
</div>
Полагаю надо выдернуть из браузера концовку адреса из массива location.href сравнить его с .nav li a[href=] и применить к li класс "active". Помогите с кодом. Пытался:
$(document).ready(function() {
var now_url=location.href;
if (now_url.split('/')[1]!=0) {
$.each($(".nav li a[href*=/"+now_url.split('/')[1]+"]"),
function(){$(".nav li").addClass('active');});
}
});{/literal}
|
Я бы так сделал:
1. Получил значение ukey из location.href 2.
$('ul.nav a[href $= "'+ukey+'"]').addClass(...)
http://jquery.page2page.ru/index.php...83%D1%82%D0%B0 |
Цитата:
<script type="text/javascript">
$(document).ready(function() {
var ukey = location.href.substr(5);
$('ul.nav a[href $= "'+ukey+'"]').addClass('active');
});
</script>
Чтото никак ( |
-4 напиши, а не 5
|
|
Почему то выборка не отрабатывает оО
$('ul.nav a[href $= "'+ukey+'"]').addClass('active');
http://promsnab-tomsk.ru (менюшка вверху) причем до смешного доходит, пишу:
$(document).ready(function() {
$('ul.nav a[href $= news]').css('color:#ff0000');
});
Выборка не идет и все тут ;( |
Дык он мб точному соответсвию ищет? У меня перед переменной еще и index.php стоит
|
Селектор
a[href $= news]не отрабатывает хоть убейся( |
Jakiro,
всё у тебя отрабатывает как надо. Смотри сюда http://promsnab-tomsk.ru/index.php?ukey=auxpage_articlesи в код <a href="/index.php?ukey=auxpage_articles" class="active">Статьи</a> А вот свойства класса у тебя не описано. |
Блин, класс описан, только для li, а не для а ))
|
Надо теперь как то к родителю результата выборки обратиться, хм
|
<div class="navbar">
<div class="navbar-inner">
<div class="container">
<ul class="nav">
<li><a href="/index.php?ukey=auxpage_service">Сервис</a></li>
<li><a href="/index.php?ukey=news">Акции</a></li>
<li><a href="/index.php?ukey=auxpage_articles">Статьи</a></li>
<li><a href="/index.php?ukey=auxpage_foto"> Фотогалерея </a></li>
<li><a href="/index.php?ukey=response">Вопрос-Ответ</a></li>
<li><a href="/index.php?ukey=auxpage_contact">Контакты</a></li>
<li><a href="/index.php?ukey=auxpage_about">О Компании</a></li>
</ul>
</div>
</div>
</div>
<style>.navbar-inner .nav a.Active{color:red;}</style>
<script type="text/javascript">
$(document).ready(function() {
var url=document.URL.replace(/^.*index\.php\?ukey=/img,"/index.php?ukey=");
$(".navbar-inner .nav a").each(function(){
if($(this).attr("href")==url) {$(this).addClass("Active"); return false;}
});
});
</script>
|
DefF, спасибо Вам тоже, но все это работает на найденную ссылку, а мне надо на тег li, который включает эту находимую ссылку
|
Цитата:
<div class="navbar">
<div class="navbar-inner">
<div class="container">
<ul class="nav">
<li><a href="/index.php?ukey=auxpage_service">Сервис</a></li>
<li><a href="/index.php?ukey=news">Акции</a></li>
<li><a href="/index.php?ukey=auxpage_articles">Статьи</a></li>
<li><a href="/index.php?ukey=auxpage_foto"> Фотогалерея </a></li>
<li><a href="/index.php?ukey=response">Вопрос-Ответ</a></li>
<li><a href="/index.php?ukey=auxpage_contact">Контакты</a></li>
<li><a href="/index.php?ukey=auxpage_about">О Компании</a></li>
</ul>
</div>
</div>
</div>
<style>.navbar-inner .nav li.Active{color:red;}</style>
<script type="text/javascript">
$(document).ready(function() {
var url=document.URL.replace(/^.*index\.php\?ukey=/img,"/index.php?ukey=");
$(".navbar-inner .nav a").each(function(){
if($(this).attr("href")==url) {$(this).parent("li").addClass("Active"); return false;}
});
});
</script>
|
т.е. Первый код, представленный Серегой_PWNZ тоже, как и Ваш, находил тупо ссылку и применял к ней стиль, а мне надо к тегу li, внутри которого лежит искомая ссылка
|
Jakiro,
Мну непонятно - Active - сейчас ставится на li a css - Вы применяете- как Вам удобно! (убрал a Выложите код Стиля для данного блока и ссылок *Или лучше ссылку на страницу |
http://promsnab-tomsk.ru/
Вверху менюшка Да, поиск идет по ссылке, но стиль приметяется к его родителю (тег li) |
Jakiro,
Замените этот скрипт
$(document).ready(function() { var url=document.URL.replace(/^.*index\.php\?ukey=/img,"/index.php?ukey="); $(".navbar-inner .nav a").each(function(){ if($(this).attr("href")==url) {$(this).addClass("Active"); return false;} }); });
на этот
$(document).ready(function() { var url=document.URL.replace(/^.*index\.php\?ukey=/img,"/index.php?ukey="); $(".navbar-inner .nav a").each(function(){ if($(this).attr("href")==url) {$(this).parent().addClass("Active"); return false;} }); });
|
Большое Вам спасибо Раед
|
| Часовой пояс GMT +3, время: 00:16. |