Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.07.2012, 17:17
Новичок на форуме
Отправить личное сообщение для panictmn Посмотреть профиль Найти все сообщения от panictmn
 
Регистрация: 15.07.2012
Сообщений: 2

Вылеление активных пунков меню. Нужна помощь !
Добрый день !
Cразу скажу что с программированием я на вы также и с JAVA. Такчто сильно не пинайте)

Ситуация следующая:
потребовалось сделать выделение активных пунков меню на сайте,
я добавил в меню ****.тпл ява скрипт который смотрит в div id="ttt" все ссылки и сверяет с адресом текущей страницы и если адрес совпадает с какой то ссылкой, то этой ссылке присваивается class="left_menu_selected" и ссылка начинает использовать этот класс из css'ок... вот собственно и весь процесс...

сам скрипт:
<script type="text/javascript">
$.each($("#ttt a"), function(){if(this.href == location.href.split('?')[0].split('#')[0]) this.className = "left_menu_selected";});
</script>


все работает, но проблемма вылезла следующая:
помимо основного меню (которое вверху страницы) существует еще боковое подменю, когда открываем ссылку с бокового, то выделение верхнего меню пропадает.., конечно оно пропадает из-за того, что активная ссылка(адресс открытой страницы) изменяется. Ну а боковая ссылка выделяется как положено...

Я понимаю, что все решила бы жетская привязка выделения пункта меню к нескольким ссылкам, сайт нетакой большой, и руками это приписать не составит труда, вопрос только как заставить скрипт сверять ссылку пункта меню с несколькими (зараенее прописаными) ссылками?
Ответить с цитированием
  #2 (permalink)  
Старый 15.07.2012, 17:57
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<script type="text/javascript">
$(document).ready(function(){
  var TstLink = document.url.split('?')[0].split('#')[0];
  $("body a").each( function(){
      if($(this).attr("href") == TstLink) $(this).addclass("left_menu_selected");
  });
}); 
</script>

Последний раз редактировалось Deff, 15.07.2012 в 19:01.
Ответить с цитированием
  #3 (permalink)  
Старый 15.07.2012, 19:01
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от panictmn
вопрос только как заставить скрипт сверять ссылку пункта меню с несколькими (зараенее прописаными) ссылками?
Ну мон заранее заполнить атрибут data="['Lonk1','Lonk2','Lonk3']" в ссылке

И
var TstLink = document.url.split('?')[0].split('#')[0]
$("body a[data]").each( function(){
   Flag=false;
   var a_Array= eval($(this).attr("data"));
for(var i in  a_Array){
  if(TstLink==a_Array[i]){Flag=true;break;}
}
  if(Flag) $(this).addclass("left_menu_selected")
});
Ответить с цитированием
  #4 (permalink)  
Старый 17.07.2012, 02:22
Интересующийся
Отправить личное сообщение для aults Посмотреть профиль Найти все сообщения от aults
 
Регистрация: 17.07.2012
Сообщений: 11

Deff, помогите пожалуйста... у меня такая же проблема с меню и у меня не получается использовать ваш код...
у меня есть 2 меню вида
<div id="123">
<ul>
         <li><a href="1">1<a/></li>
         <li><a href="2">2<a/></li>
      </ul>
</div>

<div id="456">
<ul>
         <li><a href="11">1.1<a/></li>
         <li><a href="22">2.2<a/></li>
      </ul>
</div>

и я хочу объединить (выделить) ссылки 1 и 1.1
добавляю ссылкам атрибут data="['Lonk1']"
и ниже ставлю ваш код
<script type="text/javascript">
var TstLink = document.url.split('?')[0].split('#')[0]
$("body a[data]").each( function(){
   Flag=false;
   var a_Array= eval($(this).attr("data"));
for(var i in  a_Array){
  if(TstLink==a_Array[i]){Flag=true;break;}
}
  if(Flag) $(this).addclass("left_menu_selected")
});
</script>

но класс ссылкам не добавляется...
что я делаю не так?
если вас не затруднит, покажите как вся конструкция должна выглядеть в html варианте...
заранее спасибо!

Последний раз редактировалось aults, 17.07.2012 в 02:28.
Ответить с цитированием
  #5 (permalink)  
Старый 17.07.2012, 02:46
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

aults,
Поясните задачку полностью, для сверки единственного линка по ссылке - этих финтов не нужно
<div id="123">
<ul>
         <li><a href="1">1<a/></li>
         <li><a href="2">2<a/></li>
      </ul>
</div>

<div id="456">
<ul>
         <li><a href="11">1.1<a/></li>
         <li><a href="22">2.2<a/></li>
      </ul>
</div>



<script type="text/javascript">
var TstLink = document.url;
$("div[id] > ul > a").each( function(){
  if(TstLink==this.href)$(this).addclass("left_menu_selected");
});
</script>
Ответить с цитированием
  #6 (permalink)  
Старый 17.07.2012, 09:31
Интересующийся
Отправить личное сообщение для aults Посмотреть профиль Найти все сообщения от aults
 
Регистрация: 17.07.2012
Сообщений: 11

Deff,
задача и проблема аналогична первому посту
Ответить с цитированием
  #7 (permalink)  
Старый 17.07.2012, 11:11
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от aults
задача и проблема аналогична первому посту
Лучше повторите собственную версию, - мож второй раз и решение будет чётче
Ответить с цитированием
  #8 (permalink)  
Старый 17.07.2012, 12:55
Интересующийся
Отправить личное сообщение для aults Посмотреть профиль Найти все сообщения от aults
 
Регистрация: 17.07.2012
Сообщений: 11

Сообщение от Deff Посмотреть сообщение
Лучше повторите собственную версию, - мож второй раз и решение будет чётче
в каком смысле четче? я пробовал уже по всякому но не работает, покажите как оно должно выглядеть в хтмл документе пожалуйста...
Ответить с цитированием
  #9 (permalink)  
Старый 17.07.2012, 13:05
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Deff
Лучше повторите собственную версию,
Задачи!
Ответить с цитированием
  #10 (permalink)  
Старый 17.07.2012, 13:21
Интересующийся
Отправить личное сообщение для aults Посмотреть профиль Найти все сообщения от aults
 
Регистрация: 17.07.2012
Сообщений: 11

Deff,
дак все то же самое и скрипт изначально я тот же использую
<script type="text/javascript">
$.each($("#ttt a"), function(){if(this.href == location.href.split('?')[0].split('#')[0]) this.className = "left_menu_selected";});
</script>

но не могу присвоить класс ссылке основной страницы, если открыта дополнительная...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Всплывающее меню анкеты-заявки - нужна помощь justnz jQuery 1 02.04.2012 21:38
Проблема с аккордионом и меню Tie ExtJS 3 01.09.2011 14:36
Прячется меню, нужна помощь! Skesh Элементы интерфейса 2 22.03.2011 19:17
Очень нужна помощь с Ext JS dcbal ExtJS 1 09.07.2010 13:15
нужна помощь dominosoko Серверные языки и технологии 4 14.03.2010 02:17