2013-03-24 4 views
-2

Я использую следующий код, чтобы скользить мою навигацию по менюКак сохранить изменения jquery, сохраненные при смене страницы?

$(document).ready(function(){ 
$("#flipnav").click(function(){ 
    $("nav").slideToggle("slow"); 
    }); 
}); 

, но на просмотр на другую страницу или обновить навигации обратно. но как сохранить это изменение, чтобы навигационная система оставалась скрытой до тех пор, пока пользователь не нажмет кнопку «показать навигацию снова» и останется такой же (скрытой) даже при просмотре на другую страницу?

Далее

if(sessionStorage["navigationMoved"]== "true"){ 

    $(document).ready(function(){ 
$("#flipnav").ready(function(){ 
    $("nav").slideToggle("slow"); 
    }); 
}); 

$(document).ready(function(){ 
$('#flipnav').toggle(function(){ 
    $('#content').animate({ 
    top:"0%" 
}); 
}, 

function(){ 
    $('#content').animate({ 
    top:"2%" 
    });  
}); 
}); 

} 
+0

Вы имеете в виду после первого щелчка на «#flipnav» и перехода на другую страницу «slideToggle» вызывается автоматически? – sepehr

ответ

0

Вам нужно будет проверить, когда страница загружается и перезагружается действие. Вы можете использовать sessionStorage для сохранения информации во всех перезагрузках или изменениях.

Так

$(document).ready(function(){ 
$("#flipnav").click(function(){ 
    $("nav").slideToggle("slow"); 
    }); 
    sessionStorage["navigationMoved"] = true; 
}); 

, а затем, когда вы загружаете новую страницу, вы должны иметь код, который говорит

if(sessionStorage["navigationMoved"]){ 
    $(document).ready(function(){ 
     $("#flipnav").click(function(){ 
     $("nav").slideToggle("slow"); 
    }); 
    }); 
} 

При перезагрузке страницы он полностью повторно выводит сайт на основе на HTML/Javascript/CSS. Таким образом, он не «запоминает» предыдущее состояние, если вы явно не сохраняете и не проверяете информацию

+0

спасибо .... но если пользователь снова нажимает на него, чтобы показать, какую логику следует использовать для того же slidetoggle, который нужно сохранить? – Praktech

+0

Вы можете просто сохранить false в хранилище сеансов. Или любую необходимую информацию. sessionStorage позволяет передавать произвольный объект как значение, вам просто нужно предоставить ему строковый ключ. Поэтому просто передайте ему любую информацию, необходимую для сохранения состояния, а затем заново создайте его. –

+0

пробовал, но безуспешно .... могу ли я получить помощь с кодом? – Praktech

1

Вы либо жёстко изменения в меню непосредственно в HTML для каждой страницы, или, если это не представляется возможным использовать кук или локальное хранилище, поскольку HTML является лицом без гражданства и does'nt помните изменения, сделанные вами после загрузки новой страницы.

EDIT:

Jeezes

Вы должны хранить кастрированный баран или нет меню видна на каждом slideToggle, а затем проверить, что значение на PageLoad для настройки меню соответственно

var isSet = localStorage.getItem('nav'); 
document.getElementsByTagName('nav')[0].style.display = isSet ? 'block' : 'none'; 

$(document).ready(function() { 
    $("#flipnav").click(function() { 
     $("nav").slideToggle("slow", function() { 
      localStorage.setItem('nav', $("nav").is(':visible')); 
     }); 
    }); 
}); 

Я использую localStorage, но sessionStorage является частью одного и того же API веб-хранилища HTML5, поэтому вы можете использовать это, если постоянство всего лишь сеанса - это то, что вы ищете.

Для старых браузеров MDN имеет полиполк, который возвращается к файлам cookie, поэтому вы можете последовательно использовать синтаксис веб-хранилища, не беспокоясь о неосуществимых браузерах.

+0

как это можно сделать с помощью файлов cookie? – Praktech

+0

@ user2205104 Вы можете увидеть мой ответ для определенного кода, который вы можете использовать для реализации этого с помощью sessionStorage. –

+0

сейчас, пожалуйста, дайте мне 1 очко назад, так как вы этого не знали! – Praktech

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