Ich schrieb eine einfache Aufgabenliste. Der JavaScript-Code ist unten, der wichtige Teil ist über localStorage. Was ich bisher gemacht, ist dies: JSBinNicht den gleichen Typ von localStorage wie die gespeicherte Variable hatte?
Was ich erreichen möchte, ist, dass, wenn ich die Seite neu zu laden, wenn die Einstellung die Einträge sofort entfernt werden sollte (wenn das Kontrollkästchen neben dem Textfeld aktiviert ist oder nicht), ist gespeichert und restauriert vom letzten Besuch.
Zur Zeit, als ich zum ersten Mal die Seite geladen werden muss ich deaktivieren und dann das Kontrollkästchen noch einmal überprüfen, um es funktioniert, wie ich es will ...
Hier ist mein JavaScript/jQuery-Code:
var anzahl = 0;
var autoremove = true;
var autoremove_backup = localStorage.getItem("autoremove");
console.log(localStorage.getItem("autoremove"));
$(document).ready(function() {
if(autoremove_backup===false){
$("#autoremove").prop("checked", false);
}
else if (autoremove_backup===true){
$("#autoremove").prop("checked", true);
}
autoremove = autoremove_backup;
setInterval(entry, 2000);
$("button").on('click', function() {
if(this.id=="add"){
var r = $('<div id="'+ "div"+String(anzahl) +'"><input type="checkbox" id="'+String(anzahl)+'">' + '<label for="'+ String(anzahl)+'" id="'+ "label" +String(anzahl)+'">' + $("#task").val() + '</label><br></div>');
$("#var").append(r);
anzahl = anzahl +1;
}
});
$('input[type=checkbox]').change(
function(){
if (this.checked) {
if(String(this.id)==="autoremove"){
autoremove=true;
saveAutoremove(autoremove);
}
}
else {
if(String(this.id)==="autoremove"){
autoremove=false;
saveAutoremove(autoremove);
}
}
});
});
function entry(){
if(autoremove===true){
$('#var input:checked').each(function() {
$("#div"+String(this.id)).remove();
});
}
}
function saveAutoremove(input){
localStorage.setItem("autoremove", input);
}
ALLES wird als ** string ** in 'localStorage' gespeichert. – Tushar
Ah danke, ich dachte, es könnte ein Typproblem sein ... – frankenapps
Wenn man etwas mit einem String-Literal verkettet, ist es nicht notwendig, es explizit auf einen String zu werfen, es wird implizit umgewandelt. Sie können '" #div "+ this.id' anstelle von '" #div "+ String (this.id)' schreiben. Es mag Zeiten geben, in denen Sie explizit sein wollen, nur um der Klarheit willen, aber wenn das Literal auf der linken Seite ist, sollte es ziemlich offensichtlich sein. –