Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Сохранить кнопку активной при переходе на другую страницу (https://javascript.ru/forum/dom-window/28659-sokhranit-knopku-aktivnojj-pri-perekhode-na-druguyu-stranicu.html)

georg 28.05.2012 16:26

Сохранить кнопку активной при переходе на другую страницу
 
Добрый день, у меня возникла необходимость сохранять кнопку активной при переходе на другую страницу. Кнопка является пунктом меню. Меню огранизовано в виде списка.

То есть, если нажали на главную - то произошел переход на главную и главная остается активной до тех пор, пока не будет выбрана другая кнопка.

Я рассчитывал сделать так: присвоить каждому элементу списка id, считывать значение location.href и в зависимости от этого значения присваивать определенный класс нужному id.

Но такой прием у меня не работает. Скажите, пожалуйста, что же я делаю не так и как сделать правильно?

Заранее спасибо!!!

Вот мое меню:
<ul>

<li id="home"><a href="http://lws.ru/index.php?route=information/information&information_id=6">Главная</a></div></li>
<li id="catalogue"><a href="http://lws.ru/index.php?route=information/information&information_id=7">Каталог</a></li>
<li id="portfolio"><a href="http://lws.ru/index.php?route=information/information&information_id=8">Портфолио</a></li>
<li id="sale"><a href="http://lws.ru/index.php?route=information/information&information_id=9">Как купить?</a></li>


</ul>

dmitriymar 28.05.2012 17:33

Цитата:

Сообщение от georg
Но такой прием у меня не работает. Скажите, пожалуйста, что же я делаю не так и как сделать правильно?

Всё. так одностраничные сайты организовывать как минимум дурной тон
Цитата:

Сообщение от georg
присвоить каждому элементу списка id, считывать значение location.href и в зависимости от этого значения присваивать определенный класс нужному id.Но такой прием у меня не работает. Скажите, пожалуйста, что же я делаю не так и как сделать правильно?

а должно. слеш смущает -но не факт. в дальнейшем коде что то не то делаете.

Deff 28.05.2012 17:58

Цитата:

Сообщение от georg
Сохранить кнопку активной при переходе на другую страницу

<style>
ul li[id] a[id]:hover,
ul li[id] a[id]:focus,
ul li[id] a[id]:active{
 color:red;
}
</style>

dmitriymar 28.05.2012 19:51

Цитата:

Сообщение от Deff
1 <style>
2 ul li[id] a[id]:hover,
3 ul li[id] a[id]:focus,
4 ul li[id] a[id]:active{
5 color:red;
6 }
7 </style

перейдёт на 10 страниц и 10 ссылок будут выделены при аякс. при перезагрузке страницы не будет выделена ни одна

Deff 28.05.2012 20:08

Цитата:

Сообщение от dmitriymar
перейдёт на 10 страниц и 10 ссылок будут выделены при аякс. при перезагрузке страницы не будет выделена ни одна

Попробуйте сохранять активную ссылку в window.name или coocie и устанавливать при загрузке страницы
Гы - появляются новые вводные, не заявленые старт топике

dmitriymar 28.05.2012 20:23

Цитата:

Сообщение от Deff
Гы - появляются новые вводные, не заявленые старт топике

с чего это ? у него обычная передача данных между страницами методом гет ,либо аякс запрос со слушателем на родителе выше

Deff 28.05.2012 20:36

Цитата:

Сообщение от dmitriymar
у него обычная передача данных между страницами методом гет ,либо аякс запрос со слушателем на родителе выше

Где это Вы вычитали - мну не увидел...

dmitriymar 28.05.2012 20:58

Цитата:

Сообщение от Deff
Где это Вы вычитали - мну не увидел...(если в другом топике - я прост здесь недавно

его код это подразумевает -это раз
Цитата:

Сообщение от georg
То есть, если нажали на главную - то произошел переход на главную и главная остается активной до тех пор, пока не будет выбрана другая кнопка.

-а это два

saturn 29.05.2012 00:20

Если страница перезагружается тогда можно на PHP $_SERVER['REQUEST_URI'],
а если не перезагружается тогда сперва удаляете класс скажем "activa" и добавляете тот же "active" к нужному id

$('.menu a').click(function(){
$('.menu').removeClass('active');
$(this).addClass('active');
});

saturn 02.06.2012 11:52

Вот кстати самому пришлось делать, решил таким способом:

$(window).load(function () {
    
 var url = location.pathname;
 
        $('#topmenu li').each(function() {

            var href = $(this).find('a').attr('href')
            if(url == href) {
                $(this).addClass("active");
            }
        });
    
  });


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