Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Активация текущего пункта меню. (https://javascript.ru/forum/jquery/28552-aktivaciya-tekushhego-punkta-menyu.html)

Jakiro 24.05.2012 14:53

Активация текущего пункта меню.
 
Всем доброго дня!
Облазил весь гугл, не могу допетрить, как с помощью 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}

Serg_pnz 24.05.2012 17:05

Я бы так сделал:
1. Получил значение ukey из location.href
2.
$('ul.nav a[href $= "'+ukey+'"]').addClass(...)

http://jquery.page2page.ru/index.php...83%D1%82%D0%B0

Jakiro 24.05.2012 17:42

Цитата:

Сообщение от Serg_pnz (Сообщение 176390)
Я бы так сделал:
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>

Чтото никак (

Serg_pnz 24.05.2012 17:51

-4 напиши, а не 5

Serg_pnz 24.05.2012 17:54

пример http://jq003.jcase.ru/?ukey=auxpage_foto

Jakiro 24.05.2012 18:04

Почему то выборка не отрабатывает оО

$('ul.nav a[href $= "'+ukey+'"]').addClass('active');

http://promsnab-tomsk.ru (менюшка вверху)
причем до смешного доходит, пишу:
$(document).ready(function() {


$('ul.nav a[href $= news]').css('color:#ff0000');
 
});

Выборка не идет и все тут ;(

Jakiro 24.05.2012 18:15

Дык он мб точному соответсвию ищет? У меня перед переменной еще и index.php стоит

Jakiro 24.05.2012 18:43

Селектор
a[href $= news]
не отрабатывает хоть убейся(

Serg_pnz 25.05.2012 11:16

Jakiro,
всё у тебя отрабатывает как надо. Смотри сюда
http://promsnab-tomsk.ru/index.php?ukey=auxpage_articles
и в код
<a href="/index.php?ukey=auxpage_articles" class="active">Статьи</a>

А вот свойства класса у тебя не описано.

Jakiro 25.05.2012 14:09

Блин, класс описан, только для li, а не для а ))

Jakiro 25.05.2012 14:14

Надо теперь как то к родителю результата выборки обратиться, хм

Deff 25.05.2012 15:26

<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>

Jakiro 25.05.2012 23:27

DefF, спасибо Вам тоже, но все это работает на найденную ссылку, а мне надо на тег li, который включает эту находимую ссылку

Deff 25.05.2012 23:58

Цитата:

Сообщение от Jakiro (Сообщение 176632)
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>

Jakiro 26.05.2012 00:06

т.е. Первый код, представленный Серегой_PWNZ тоже, как и Ваш, находил тупо ссылку и применял к ней стиль, а мне надо к тегу li, внутри которого лежит искомая ссылка

Deff 26.05.2012 00:29

Jakiro,
Мну непонятно - Active - сейчас ставится на li

a css - Вы применяете- как Вам удобно! (убрал a

Выложите код Стиля для данного блока и ссылок

*Или лучше ссылку на страницу

Jakiro 26.05.2012 14:41

http://promsnab-tomsk.ru/
Вверху менюшка
Да, поиск идет по ссылке, но стиль приметяется к его родителю (тег li)

Раед 26.05.2012 15:42

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;} }); });

Jakiro 26.05.2012 17:05

Большое Вам спасибо Раед


Часовой пояс GMT +3, время: 11:39.