2015-11-05 2 views
1

В настоящее время я создаю веб-сайт для школьного проекта, который динамически загружает данные json на страницу, когда пользователь переходит. Вот код, я работаю с прямо сейчас:Сохранить динамические переменные на странице закрыть

$(function() { 
var $divs = $(".divs > div"), 
    N = $divs.length, 
    C = 0;     // Current  

$divs.hide().eq(C).show(); 
$("#next, #prev").click(function() { 
    $divs.stop().fadeOut().eq((this.id == 'next' ? ++C : --C) %N).fadeIn();  
}); // close click function 
}); // close main function 

var content = jSONtexts.texts; 
$(document).ready(function() { 
$("#content0").html(content[0].content); 
$("#content1").html(content[1].content); 
$("#content2").html(content[2].content); 
$("#content3").html(content[3].content); 
$("#content4").html(content[4].content); 
$("#content5").html(content[5].content); 
$("#content6").html(content[6].content); 
$("#content7").html(content[7].content); 
$("#content8").html(content[8].content); 
}); 

В моем HTML я имею дивы, установленные в качестве контейнеров для конкретных данных JSON, которые я хочу быть представлены. Сейчас это рудиментарно, но пользователь нажимает «следующий» или «предыдущий», а другой раздел загружает json в видимый div.

Что мне нужно - это сохранить, что показывает div (возможно, используя переменную «C»?) - в файл cookie и загрузить этот div при возврате пользователя. Я попытался с помощью js.cookie.js, и это вполне возможно, что я использую это неправильно, вот что я хочу:

$(window).unload(function() { 
    Cookies.set('pageState', 'C'); 
}); //close cookie function 

Но не кажется, что работает. Это ломает загрузку json, когда я пытаюсь поместить его в файл .js, который будет иметь отношение к переменной C.

Я в тупике. Я искал всюду на google, и все, что люди говорят, пытается разбить мою функцию json. Помоги пожалуйста!

Если у кого-то есть идеи, я буду вечно благодарен!

Благодаря Сэм

+2

вы можете использовать 'localStorage' http://www.w3schools.com/html/ html5_webstorage.asp –

+0

Вы можете попробовать использовать только стандартные функции cookie: 'document.cookie = 'yourCookieText';' и ' allCookies = document.cookie; ' – Shilly

ответ

0

Cookie не является наилучшей практики, чтобы сохранить эти данные, так как печенье будет отправить с все запросы.

Используйте для использования данных HTML5 localStorage, чтобы сохранить данные на стороне клиента. http://www.w3schools.com/html/html5_webstorage.asp

Сделано демо для одной и той же

document.getElementById("textInput").value = localStorage.getItem("pageState"); 
 

 
window.addEventListener("unload", function() { 
 
    localStorage.setItem("pageState", document.getElementById("textInput").value); 
 
});
<input id="textInput" type="text" />

Демо: http://jsfiddle.net/kishoresahas/vvkdge2q/

+1

Кажется, мне нужно идти - Спасибо! Могу ли я установить значение .getElementById как переменную 'C' в моем коде? Мне нужно, чтобы он динамически менялся, когда пользователь взаимодействует со страницей. Должен ли я установить промежуточную переменную для переноса значения? –

0

, как @KishoreSahas уже предложил в комментариях, я хотел бы предложить вам использовать localStorage вместо печенья.

Вы можете сохранить то, что вам нужно, как этот

localStorage.setItem("veryimportantdata", "INeedThisLater"); 

и получить его позже, как этот

var data = localStorage.getItem("veryimportantdata"); 
console.log(data); // prints out "INeedThisLater" 
Смежные вопросы