2017-03-08 5 views
2

Ich habe eine Uhr basierend auf einer Fantasy-Zeitzone erstellt. Ich habe dann einen "Alarm" erstellt, der eine Warnung ausgibt, wenn ein Kontrollkästchen aktiviert ist.Ein Kontrollkästchen beim erneuten Laden der Seite dauerhaft machen?

Ich versuche, lokalen Speicher zu verwenden, um die Checkbox dauerhaft auf Seite neu zu laden, so dass die Leute zu anderen Seiten auf der Website gehen können, oder aktualisieren, ohne jedes Mal das Kästchen ankreuzen zu müssen.

Ich kann es nicht scheinen, obwohl zu arbeiten, und ich habe durch viele ähnliche Fragen gewesen, wie diese: how to Keep checkbox checked after refresh the page

ist hier ein codepen des Codes ich habe: http://codepen.io/anon/pen/xqRWJM?editors=1111

Hier ist der hTML-Code für das Kontrollkästchen:

<div id="alert">Alert me when it's night time: 
<input id="alertme" type="checkbox"></input> 
</div> 
+0

Das Beispiel, Sie verknüpft zeigt, wie local zu verwenden, die wie ein guter Ansatz scheint, aber ich nicht, dass die Wesen sehen überall in Ihrem Code verwendet. Könntest du klären, was genau für dich nicht funktioniert? –

+0

Ich fühle mich, als würde ich es einfach an die falsche Stelle im Code stellen oder etwas genauso dummes tun. Es sollte eine einfache Sache sein, aber mein Verstand fühlt sich wie ein Brei an, nachdem er den Rest des Codes geschrieben hat. Ich bin irgendwie neu in der Verwendung von Cookies und lokalem Speicher. Ich habe den Code aus der Frage ausprobiert, aber es scheint nicht zu funktionieren, wenn ich die Codepen-Vorschau neu lade. http://codepen.io/anon/pen/aJBKbZ?editors=1011 – Sarah

+0

Sie haben nicht die Jquery-Bibliothek in Codepen hinzugefügt, es scheint Arbeit nach dem Hinzufügen der JQeury-Bibliothek. – user2970115

Antwort

0

ich einen einfachen Stift für Sie gemacht haben, die zeigt, wie das Kontrollkästchen Zustand mit der Localstorage API speichern. Hoffentlich können Sie dies Ihren spezifischen Bedürfnissen anpassen.

http://codepen.io/oculusriff/pen/RpoJWQ?

HTML

<input type="checkbox" id="test" /> <label for="test">Test</label> 

JavaScript

function App() {} 

App.prototype.setState = function(state) { 
    localStorage.setItem('checked', state); 
} 

App.prototype.getState = function() { 
    return localStorage.getItem('checked'); 
} 

function init() { 
    var app = new App(); 
    var state = app.getState(); 
    var checkbox = document.querySelector('#test'); 

    if (state == 'true') { 
    checkbox.checked = true; 
    } 

    checkbox.addEventListener('click', function() { 
     app.setState(checkbox.checked); 
    }); 
} 

init(); 

Cheers, Josh

+0

Das war genau was ich brauchte! Danke :) – Sarah

+0

Hier ist ein funktionierender Codepen Ihrer App, basierend auf @Splurctake Lösung http://codepen.io/anon/pen/QpGxqL?editors=1011 –

+0

@Sarah mein Vergnügen, viel Spaß! – Splurtcake

Verwandte Themen