Сохранение расширения меню открытым при смене страницы - PullRequest
1 голос
/ 27 мая 2011

У меня есть расширяющееся меню с использованием jquery. Это работает хорошо, за исключением одного: когда пользователь уходит со страницы, меню рушится. Я хочу, чтобы меню оставалось открытым, когда пользователь нажимает на любую из последних ссылок

. Все эти ссылки открывают одну и ту же страницу. Содержимое на этих страницах извлекается из базы данных и определяется как? Id =.

Вот код:

HTML:

 <ul id="nav">
    <li><a href="javascript:;">Products</a>
           <ul id="nav2">
        <li><a href="javascript:;">Domestic Market</a>
            <ul>
                <li><a href="index.php?page=Product&id=1">Link1</a></li>
                    <li><a href="index.php?page=Product&id=2">Link2</a></li>
                    <li><a href="index.php?page=Product&id=3">Link3</a></li>
        </ul>
       </li>
       <li><a href="javascript:;">Commercial Market</a>
            <ul>
                <li><a href="">Coming Soon</a></li>
            </ul>
       </li>
      </ul>
       </li>
       </ul>

CSS:

ul {
    padding: 0px;
    margin: 0px;
    width: 10em;
        list-style-type:none;

}
li {
     font: 100% Verdana, Arial, Helvetica, sans-serif;
 font-size:12px;
 color:#003;  
}

li ul {
    display: none;
}
li.active > ul {
    display: block;
}

JQuery:

$('#nav').delegate('li,a', 'click', function(e) {
    e.stopPropagation();

    var self = $(e.target),
        //get a reference to the clicked element
        active = self.parents().andSelf() //select all li's that should be active
        .addClass('active'); //and activate them
    $('#nav .active').not(active).removeClass('active'); //deactivate others  
});

$(document).click(function(){
    $('.active').removeClass('active'); 
});

Как мне сохранить финальный

открытым?

1 Ответ

1 голос
/ 27 мая 2011

Я бы порекомендовал сохранить значение в файле cookie, а затем установить его при загрузке страницы.

Прежде всего, я бы порекомендовал вам скачать плагин jQuery cookie здесь .Это хороший плагин и он маленький.Установите значение:

$.cookie("cookie_name", "cookie_value");

И затем в document.ready вы можете получить значение:

$.cookie("cookie_name);

и установить его соответствующим образом, что-то напоминающее вашу текущую функцию щелчка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...