2017-11-13 3 views
-3

ich diese Variablen bekamLoading local aktualisiert nicht meine Variablen

var moneycount = 0; 
var b1 = document.createElement("IMG"); 

function update() { 
    document.getElementById('money').innerHTML = moneycount; 
} 

und Funktionen zum Speichern/Laden

function save() { 
    localStorage.setItem("moneycount", moneycount); 
}; 

function load() { 
    moneycount = localStorage.getItem("moneycount"); 
    moneycount = parseInt(moneycount); 
    update(); 
}; 

Diese Funktion arbeitet wie beabsichtigt aber gewohnt Update mit localstorage

function add() { 
    moneycount = moneycount + 1 
    if (moneycount >= 1) { 
    document.getElementById('badge1').appendChild(b1); 
    } 
    update(); 
} 

Es scheint wie var moneycount = 0 ist immer noch 0, nachdem ich localStorage laden, weil if (moneycount >= 1) funktioniert nicht. Das Dokumentelement zeigt nach dem Laden von localStorage immer noch eine größere Nummer an. Irgendwelche Ideen, wie ich meine add() Funktion speichern kann?

Edit:
Gefunden eine vorübergehende Lösung mit setInterval(save, 5000); Einstellung und das Hinzufügen von <body onload="load();"> und es auf Refresh aufrufen.

+2

Ihre ' load() 'Funktion tut genau das gleiche wie' save() '. – JJJ

+0

Entschuldigung, ich habe vergessen zu bearbeiten, wenn ich die Funktionen schnell kopiert habe. Jetzt behoben. – Shimeri

+0

Es ist immer noch unklar, was Sie fragen. Warum sollte 'add()' localStorage aktualisieren? Es hat keinen Code, der dies tun würde, und er ruft 'save()' nicht auf. – JJJ

Antwort

-1

Der Grund ist (wie in den Kommentaren erwähnt), dass Ihre load() Funktion auch die localStorage speichert, anstatt den Wert abzurufen.

Ihre load() Funktion sollte wie folgt aussehen:

function load() { 
    moneycount = localStorage.getItem("moneycount"); 
    update(); 
}; 
+0

Das war mein schlechtes beim Posten der Frage. Ich kopiere einfach eingefügt und vergessen, diesen Teil zu bearbeiten. – Shimeri

0

, weil Sie ist nicht die localstorage aktualisieren Sie stattdessen nur das HTML-Element aktualisieren: sollte es tun, wie folgt:

var moneycount = 0; 
var b1 = document.createElement("IMG"); 

    function update() { 
     document.getElementById('money').innerHTML = moneycount; 
    localStorage.setItem("moneycount", moneycount); 

    } 



    function save() { 
     localStorage.setItem("moneycount", moneycount); 
    }; 





    function add() { 
     localStorage.getItem("moneycount")+= 1; 
     if (moneycount >= 1) { 
     document.getElementById('badge1').appendChild(b1); 
     } 
     update(); 
    } 
Verwandte Themen