Вылеление активных пунков меню. Нужна помощь !
Добрый день !
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> все работает, но проблемма вылезла следующая: помимо основного меню (которое вверху страницы) существует еще боковое подменю, когда открываем ссылку с бокового, то выделение верхнего меню пропадает.., конечно оно пропадает из-за того, что активная ссылка(адресс открытой страницы) изменяется. Ну а боковая ссылка выделяется как положено... Я понимаю, что все решила бы жетская привязка выделения пункта меню к нескольким ссылкам, сайт нетакой большой, и руками это приписать не составит труда, вопрос только как заставить скрипт сверять ссылку пункта меню с несколькими (зараенее прописаными) ссылками? |
<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> |
Цитата:
И 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") }); |
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,
Поясните задачку полностью, для сверки единственного линка по ссылке - этих финтов не нужно <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> |
Deff,
задача и проблема аналогична первому посту |
Цитата:
|
Цитата:
|
Цитата:
|
Deff,
дак все то же самое и скрипт изначально я тот же использую <script type="text/javascript"> $.each($("#ttt a"), function(){if(this.href == location.href.split('?')[0].split('#')[0]) this.className = "left_menu_selected";}); </script> но не могу присвоить класс ссылке основной страницы, если открыта дополнительная... |
Часовой пояс GMT +3, время: 08:58. |