Я играл с некоторыми кучами jQuery, которые я нашел на этом сайте, и cookie, я думаю, работает, но мое меню полностью перестает открываться.
Я очень новичок в jQuery, поэтому не знаю, где я могу ошибиться.
Я просто продолжал открывать ссылки, например, нажимаю ссылку 1, а затем элемент подменю, и когда страница загружается, ссылка 1 остается открытой.
Кто-то, пожалуйста, указывайте мне в правильном направлении!
спасибо
<ul class="nav">
<li><a>Link</a>
</li>
<li class="drop"><a>Link 1</a>
<ul id="m1">
<li><a href="#">Link 1 Item</a>
</li>
<li><a href="#">Link 1 Item</a>
</li>
</ul>
</li>
<li class="drop"><a>Link 2</a>
<ul id="m2">
<li><a href="#">Link 2 Item</a>
</li>
<li><a href="#">Link 2 Item</a>
</li>
</ul>
</li>
<li class="drop"><a>Link 3</a>
<ul id="m3">
<li><a href="#">Link 3 Item</a>
</li>
<li><a href="#">Link 3 Item</a>
</li>
</ul>
</li>
jQuery(function ($) {
// jQuery code in here can safely use $
$('.nav li')
.css({
cursor: "pointer"
})
$(".drop")
.on('click', function () {
$(this).find('ul').toggle();
})
});
Здесь немного беспорядочный ответ:
jQuery(function ($) {
// jQuery code in here can safely use $
$('.nav li')
.css({
cursor: "pointer"
});
$(".drop")
.on('click', function () {
$(this).toggleClass('open');
$(this).find('ul').toggle();
$.cookie('open_items', 'the_value');
openItems = new Array();
$("li.drop").each(function(index, item) {
if ($(item).hasClass('open')) {
openItems.push(index);
}
});
$.cookie('open_items', openItems.join(','));
});
if( $.cookie('open_items') && $.cookie('open_items').length > 0 ) {
previouslyOpenItems = $.cookie('open_items');
openItemIndexes = previouslyOpenItems.split(',');
$(openItemIndexes).each(function(index, item) {
$("li.drop").eq(item).addClass('open').find('ul').toggle();
});
}
});
Для этого вам нужно будет включить библиотеку jquery.cookie.
Обновленную скрипку можно найти здесь: http://jsfiddle.net/pHgB7/2/