Hogy lehet ezt megoldani?
Feltettem tegnap egy kérdést, hogy hogy lehet Javascripttel elmenteni egy oldal adatait. Kaptam rá egy olyan választ, hogy local storage-al meg lehet ezt oldani.
Találtam rá a neten pár példát, de nem tudtam átformázni, hogy úgy működjön, ahogy én szeretném.
Van nagyon sok "negyzetek" class-ú div-em.
(<div class="negyzetek"></div>)
Azt szeretném megoldani, hogy valahogy mentse/tárolja el a gép ezeknek az div-eknek a jelenlegi színét, majd az oldal újratöltésekor az elmentett színek jelenjenek meg.
if (localStorage.getItem('background') !== null) {
getColour = localStorage.background;
$('.btn-secondmenu').css('background', getColour);
}
$('.negyzetek').click(function() {
if (getColour == 'blue') {
localStorage.removeItem('background');
$('.negyzetek').css('background', 'red');
localStorage.setItem('background', 'red');
} else {
localStorage.removeItem('background');
$('.negyzetek').css('background', 'blue');
localStorage.setItem('background', 'blue');
}
});
Ezt a kódot a neten találtam, de itt pirosról kékre, és kékről pirosra váltakoznak a színek. Nem tudom, hogy hogy lehetne megoldani, hogy az alsó sorokban ne "blue" és "red" szerepeljen, hanem a div jelenlegi háttérszíne. (Ha pl 100-ból 2-t zöldre színezek, akkor az a kettő újratöltés után is maradjon zöld. De csak az a kettő.)
Ha esetleg php-val egyszerűbb a megoldás, akkor azt is szívesen megnézem, de php-t egyáltalán nem tanultam még, ezért szerettem volna a JavaScriptet erőltetni.
Fizess érte.
6000 Ft minden megkezdett óra.
Kedves kérdező,
szerintem először is gondold végig a "feladatot":
* Milyen színűek lehetnek a négyzetek? Alapértelmezetten - amikor még nem localStorage-ből töltöd be a négyzetek színét - milyen színűek a négyzetek?
* Ezeknek a négyzeteknek mivel tudja a felhasználó megváltoztatni a színét? Ha rákattint?
* Mikor végzel mentést a localStorage-be? Amikor megváltozik a színük? Időnként? Vagy egy külön gombra történő kattintáskor?
Majd építsd fel - leegyszerűsítve:
* szükséged lesz egy konstans tömbre, amiben tárolod a négyzetek lehetséges színeit
* szükséged lesz egy változó tömbre, amiben tárolod a négyzetek aktuális színeit
* szükséged lesz egy függvényre, amivel betöltöd a tömbbe a localStorage-ből az adatokat
* szükséged lesz egy másik függvényre, amivel elmented a tömb adatait a localStorage-be
* szükséged lesz egy harmadik függvényre, amivel a tömb adatait felhasználva legenerálod a négyzeteket a böngészőben
* szükséged lesz egy negyedik függvényre, ami kezeli a böngészőben való kattintáskor bekövetkezendő eseményeket (színt változtat, tömbben rögzít és esetleg localStorage-be ment)
* szükséged lesz egy ötödik függvényre, ami kezeli az oldal betöltődésekor lezajló eseményeket (ellenőrzi, hogy van-e a localStorage-ben valami; ha igen, betölti a tömbbe; ha nem, alapértelmezett értékekkel tölti fel a tömböt, majd meghívja a harmadik függvényt)
Ehhez nem kell PHP. Még jQuery sem. Szimpla Javascripttel kivitelezhető.
Az utolsó válaszolónak köszönöm! Sokat segített!
Valaki12345678:
Láttam néhány válaszod más kérdéseknél is. Az egyetlen probléma ezzel az, hogy szó szerint egy olyan válaszod sincs, amiben a segítség leghalványabb jele érzékelhető lenne, egyszerűen csak kijelented, hogy inkább hagyjuk, mert nem értünk hozzá...
Ebből viszont azt tudom kikövetkeztetni, hogy nem érted az oldal lényegét. Itt emberek olyan kérdéseket tesznek fel, amikre szeretnének választ kapni.
De kívánom, annyi segítséget kapj te is egész életedben, mint amennyit adsz. Ha ezt sértésnek veszed, nem felháborodni, hanem elgondolkodni kellene. :)
#8 Csak ez nem üzlet, hanem egy olyan oldal, ahol az emberek kérdéseket tesznek fel, más emebrek meg válaszolnak nekik. Ha a te attitűdöd az, hogy aki nem ért hozzá, fizessen, akkor felmerül a kérdés, hogy mégis mit keresel ezen az oldalon. Merthogy
- Kérdésed nincs, hiszen te mindent tudsz
- Válaszolni úgysem vagy hajlandó
- Fizetni meg senki nem fog itt arra, hogy te vered a mellényt
További kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!