Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Выделение активного пункта меню (https://javascript.ru/forum/jquery/59694-vydelenie-aktivnogo-punkta-menyu.html)

sergofedor06 23.11.2015 01:07

Выделение активного пункта меню
 
Привет!
Выделение активного пункта меню
есть рабочий код, он исправно работает и подсвечивает другим светом активное меню
в меню есть 3 ссылки

http://test/index.php?search=mama
http://test/index.php?search=papa
http://test/index.php?search=ya

ссылка из меню будет подсвечена если я введу саму ссылку вида http://test/index.php?search=papa
в поисковой строке браузера то ее подсветит другим светом

Но у меня есть проблема, я перешол на станицу http://test/index.php?search=papa
у меня есть пагинация идут страницы потом такого вида
http://test/index.php/page2?search=papa
и все кирдык подсветка активного пункта меню (papa) слетает
как решить мне эту задачу? чтобы пункт меню (papa) был активен даже если я перейду по ссылке
http://test/index.php/page2?search=papa
или
http://test/index.php/page33?search=papa
или любой другой номер страницы!

Спасибо.





<style>
#menu ul li a{
	text-decoration:underline;
}
#menu ul li a:hover {
	color:#4996e5;
}
#menu ul li a.active{
	color:#4996e5;
	text-decoration:none;
}
</style>


<script>
$(function () {                                      
    $('#menu a').each(function () {             
        var location = window.location.href; 
        var link = this.href;                
        if(location == link) {               
            $(this).addClass('active');  
        }
    });
});	
</script>


<div id="menu">
  <ul>
    <li><a href="http://test/index.php?search=mama">mama</a></li>
    <li><a href="http://test/index.php?search=papa">papa</a></li>
    <li><a href="http://test/index.php?search=ya">ya</a></li>
  </ul>
</div>

рони 23.11.2015 01:24

sergofedor06,
зачем засорять форум? создали тему, зачем ещё-то?

sergofedor06 23.11.2015 01:33

почему засорять, тут уникальное описание его нигде не постил

sergofedor06 23.11.2015 01:35

в тех темах может сложно описал! тут вроде проще у меня вышло передать свои мысли, может кто что подскажет.

рони 23.11.2015 01:39

Цитата:

Сообщение от sergofedor06
почему засорять, тут уникальное описание его нигде не постил

офигеть
http://javascript.ru/forum/misc/59682-ehffekt-s-ssylkojj.html

рони 23.11.2015 01:42

sergofedor06,
<style>
#menu ul li a{
     font-size: 24px;
	text-decoration:underline;
}
#menu ul li a:hover {
	color:rgba(255, 0, 0, 1);
}
#menu ul li a.active{
	color: rgba(255, 0, 0, 1);
	text-decoration:none;
}
</style>

<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script>
$(function () {
        var search = window.location.search;
        search = decodeURIComponent(search);   
        $("[href$='"+search+"']").addClass('active');


});
</script>


<div id="menu">
  <ul>
    <li><a href="?search=mama">mama</a></li>
    <li><a href="?search=papa">papa</a></li>
    <li><a href="?search=ya">ya</a></li>
  </ul>
</div>

sergofedor06 23.11.2015 11:01

Спасибо, работает но не совсем корректно.
к примеру я перехожу по ссылке
<li><a href="?search=papa">papa</a></li>
этот пункт меню у меня подсвечивается красным, далее идет к примеру постраничная навигация
выглядит так страница
http://test/index.php/page2?search=papa

тоже все ок! меню (papa) подсвечивается, и значит я к примеру сейчас нахожусь на странице http://test/index.php/page2?search=papa
и потом решаю перейти на другой пунк меню
к примеру (mama) и тут открывается страница не вида http://test/index.php?search=mama
а вида
http://test/index.php/page2?search=mama
а должно открывать главную страницу http://test/index.php?search=mama

sergofedor06 23.11.2015 11:02

как убрать эту наследственность page2
чтобы page2 или page3 и всех остальных номеров не прибавлялись

sergofedor06 23.11.2015 11:08

да и такой вариант работает только с латиницей

<div id="menu">
<ul>
<li><a href="?search=mama">mama</a></li>
<li><a href="?search=papa">papa</a></li>
<li><a href="?search=ya">ya</a></li>
</ul>
</div>


если кириллица, так то не подсвечивает меню вообще!

<div id="menu">
<ul>
<li><a href="?search=мама">мама</a></li>
<li><a href="?search=папа">папа</a></li>
<li><a href="?search=я">я</a></li>
</ul>
</div>

почему так?

sergofedor06 23.11.2015 11:19

мой вариант работает с кириллицей!



<style>
#menu ul li a{
	text-decoration:underline;
}
#menu ul li a:hover {
	color:#4996e5;
}
#menu ul li a.active{
	color:#ed0b30;
	text-decoration:none;
}
</style>

<script>
$(function () {                                      
    $('#menu a').each(function () {             
        var location = window.location.href; 
        var link = this.href;                
        if(location == link) {               
            $(this).addClass('active');  
        }
    });
});	
</script>



<div id="menu">
  <ul>
<li><a href="?search=мама">мама</a></li>
<li><a href="?search=папа">папа</a></li>
<li><a href="?search=я">я</a></li>
  </ul>
</div>



только остается проблема, что описал выше......

меню (papa) подсвечивается, и значит я к примеру сейчас нахожусь на странице http://test/index.php/page2?search=papa
и потом решаю перейти на другой пункт меню
к примеру (mama) и тут открывается страница не вида http://test/index.php?search=mama
а вида
http://test/index.php/page2?search=mama
а должно открывать главную страницу http://test/index.php?search=mama


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