Hjälp med att ändra färg mer än en gång med Javascript

Permalänk
Medlem

Hjälp med att ändra färg mer än en gång med Javascript

Hallå!

Jag har en sida med formulär i tabell där besökaren kan markera vissa rader genom att trycka på en knapp (egentligen en checkbox) så de ändrar färg. Det funkar fint med hjälp av följande kod:

<head> <script type="text/javascript"> function inputs() { var boxar = document.body.getElementsByClassName('minibox'); for (var j = 0; j < boxar.length; j++) { boxar[j].onchange = function() { this.parentNode.parentNode.style.backgroundColor='#666666'; return false; } } } </script> </head> <body onload="inputs()">

Problemet är att jag vill att raderna ska avmarkeras om man trycker på knappen en gång till. Alltså att varannan gång ändras färgen till grå och varannan gång tillbaka till vit. Går det att lösa? Jag har försökt lite med variabler osv men inget jag har kunnat komma på funkar.

Permalänk

Du bör väl kunna kolla med t.ex. en if-sats om boxen är grå, är den det så ska den ändras till vit och tvärtom...?

Visa signatur

Q6600 @ 3.2GHz | 2*4 Corsair XMS2 5-5-5-12 @ 1003 | Club3D HD4850 | Asus P5Q Pro

Permalänk
Medlem

Jag har tänkt på det men inte lyckats få det att funka. Eventuellt vet jag inte hur jag ska göra med färgerna, om man kollar vilken färg boxen har returneras typ "rgb(122, 122, 122)" som inte går att jämföra med.

Igår ville ingenting, vid ett tillfälle slutade scriptet att fungera när jag initierade en ny variabel överst.

Permalänk
Medlem

Kolla inte vilken färg saker har, kolla istället om checkboxen är checkad (otestad kod):

this.parentNode.parentNode.style.backgroundColor = (this.checked == true ? '#666666' : '#ffffff');

Edit: För övrigt är det vettigare om du sätter en klass istället, och om du använder typ jQuery blir allt lite enklare.

Permalänk
Medlem

TUSEN TACK! Nu kan jag sova gott

Jo, jag har väl fattat att det vore smart att lära sig nåt framework... Gäller bara att komma ihåg det vid något bra tillfälle. Kanske sommarprojekt?