2017-08-31 1 views
0

Ma question est double, et serait bien d'avoir une autre perspective. J'enregistre des données dans localStorage, mais si j'actualise les données est parti. et l'autre question, est que seul le dernier élément cliqué, est ajouté à localStorage. Toute aide est la bienvenue.Le stockage local ne persiste pas après le rafraîchissement

function getItem(callback){ 
 
    var itemsObj; 
 
    $('.info').on('click', function(){ 
 
    itemsObj = {}; 
 
    $this = $(this); 
 
    itemsObj.gameImg = $this.parent().parent().find('img').attr('src'); 
 
    itemsObj.gameTitle = $this.parent().parent().find('h2').text(); 
 
    itemsObj.gameInfo = $this.parent().parent().find('p').text(); 
 
    // call the callback function parameter and send itemsObj as argument, callback function then received the argument as you wanted it to be. Then execute stuff from there. 
 
    callback(itemsObj); 
 
    }); 
 
} 
 

 
// send a function instead for getItem to call when all is well 
 
getItem(function (data) { 
 
    // here you will receive the data 
 
    console.log('from function:', data); 
 
    localStorage.data = (JSON.stringify(data)); 
 
    if(localStorage.getItem("data")){ 
 
    var savedLocal = localStorage.getItem("data"); 
 
    savedLocal = JSON.parse(savedLocal); 
 
    var favsResult = $('.favs-display-data'); 
 
    favsOutput = `<div class="col-lg-3 game"> 
 
        <div class="view view-first"> 
 
        <img src="${savedLocal.gameImg}"/> 
 
        <div class="mask"> 
 
         <h2>${savedLocal.gameTitle}</h2> 
 
         <p>${savedLocal.gameInfo}</p> 
 
         <a href="#" class="info">♥</a> 
 
        </div> 
 
        </div> 
 
       </div>` 
 
    favsResult.append(favsOutput); 
 
    } 
 
    console.log('savedLocal: ', savedLocal);

Répondre

1

Vous avez un problème, vous devez utiliser localStorage.setItem("KEY-NAME", "VALUE");

Ne pas utiliser localStorage.data ... qui ne va pas

1

Cela peut aider pour vous:

localStorage.setItem("variable_name","value"); 
localStorage.getItem("variable_name"); 

Mais si vous êtes stori ng JSON alors vous devez régler la localStorage par:

localStorage.setItem("variable_name",JSON.stingify("value")); 

Et au moment de l'extraction de données à partir localStorage puis,

var data=JSON.parse(localStorage.getItem("variable_name")); 
0
<html> 
<head> 
<script type="text/javascript"> 
function persistData() { 
    localStorage.setItem('key', 'val'); 
} 
localStorage.getItem('key'); 
</script> 
</head> 
<body> 
<button type="button" onclick="persistData()">Store</button> 
</body> 
</html> 

Sur quel navigateur vous êtes face à la question, parce que, la plupart du temps, ça marche tout droit. Seulement vous devez stringyfy ou analyser avant utilisation.