Waar zit de fout in dit stuk JavaScript?
Ik ben bezig met een kalender waarop bezoekers kunnen zien wanneer een bepaald vakantiehuis vrij is of niet. De eigenaar van het huisje kan op een pagina beheren welke weken beschikbaar zijn, door op de cellen (lees 'weken') van een bepaalde tabel te klikken. Wanneer hij op zo'n cel klikt moet de kleur switchen tussen bezet (#cc0000) en beschikbaar (#22aa22).
ik heb de volgende functie:
var bg = new Array();
var h = 1;
var g = "";/* er zijn 13 td's met elke een id: week1,week2 enz */
while (h<14) /*er zijn 13 weken */
{
g = "week" + (h + "");
bg[h] = document.getElementById(g).style.backgroundColor;
h++;
}
function c(w)
{
var n = w.charAt(4);
n = parseInt(n);
var o = "week" + (n + "");
bg[n]=bg[n]+"";
if (bg[n]=="#22aa22" || bg[n]=="rgb(34,170,34)")
{
bg[n]=="#CC0000";
document.getElementById(o).style.backgroundColor = bg[n];
}
else
{
bg[n] = "#22aa22";
document.getElementById(o).style.backgroundColor = bg[n];
}
}
deze functie wordt alsvolgt geroepen door alle
enzovoorts (in totaal 13). Het probleem zit hem volgens mij in de conditie van het if-statement. Alle achtergronden van de
Heb je meer informatie nodig om de vraag te beantwoorden? Reageer dan hier.
Het beste antwoord
bg[n]=="#CC0000"
de dubbele == (vergelijking) vervangen door een enkele = (toekenning)
Andere antwoorden (1)
Als extra zou ik de variabele o een andere naam geven. o is veel te makkelijk te verwarren met 0, en als je dat doet lees je er geheid overheen.