Comutarea element in localStorage
Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
-
Marius
- Mesaje:60
Comutarea element in localStorage
Vreau să creez o funcție de comutare pentru LocalStorage unde sa se retină alegerea utilizatorului.
Vreau să încarce preferința curentă la încărcarea paginii, dacă a fost făcută una, și apoi să poata comuta alta starea prin clic pe un buton.
Codul meu este mai jos, dar nu funcționează.
Cod: Selectaţi tot
// ON PAGE LOAD, IF USER PREFERS DARK, ADD DARK CLASS TO HTML
if (window.localStorage.getItem('preferDark')) {
$('html').toggleClass('dark');
}
// TOGGLE STATE ON CLICK
$('.wrapper').click(function(){
if (window.localStorage.getItem('preferDark', true)) {
window.localStorage.setItem('preferDark', false);
} else {
window.localStorage.setItem('preferDark', true);
}
$('html').toggleClass('dark');
});
MarPlo
Mesaje:4343
Nu poți sa păstrezi valori tip boolean în localStorage. De aceea ai eroare. Încerca să folosesti, de exemplu, 0 pentru False și 1 pentru True.
Inca ceva: localStorage nu poate păstra valori tip numar - poti sa adaugi ca numar sau boolean, dar va fi convertit în șir.
Incearca asta:
Cod: Selectaţi tot
if (+ window.localStorage.getItem('preferDark')) {
$('html').toggleClass('dark');
}
$('.wrapper').click(function () {
if (+ window.localStorage.getItem('preferDark')) {
window.localStorage.setItem('preferDark', 0);
}
else {
window.localStorage.setItem('preferDark', 1);
}
$('html').toggleClass('dark');
});
Observatie: Se foloseste semnul + înainte de a obține valoare de la localStorage pentru a o converti în Număr.