2011-05-27 2 views
1

У меня есть расширенное меню с использованием jquery. Он работает хорошо, за исключением одного: когда пользователь переходит от страницы, меню рушится. Я хочу, чтобы меню оставалось открытым, когда пользователь нажимает на любую из последних ссылок < li>. Все эти ссылки открывают ту же страницу. Содержимое на этих страницах извлекается из базы данных и определяется идентификатором? 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'); 
}); 

Как сохранить окончательный < li> 'ы открытый?

ответ

1

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

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

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

а затем на document.ready вы можете вытащить значение:

$.cookie("cookie_name); 

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

Смежные вопросы