witam,
mam książkowy skrypcik generujący kartę do gry w bingo. Napisałam go i wszystko działa do momentu kiedy chcę zaznaczyć dane pole. W książce nie jest to dobrze opisane tak jakby brakowało czegoś w treści/kodzie.
window.onload = inicjacja;
var uzyteLiczby
= new Array(76
); function inicjacja() {
if (document.getElementById){
document.getElementById("reload").onclick = innaKarta;
newKarta();
}
else {
alert("Twoja przeglądarka nie jest w stanie obsłużyć tego skryptu!");
}
}
function newKarta(){
for(var i=0; i<24; i++){
setPole(i);
}
}
function setPole(thisPole){
var nrPola = "pole" + thisPole;
var nrKolumna
= new Array(0
,1
,2
,3
,4
,0
,1
,2
,3
,4
,0
,1
,3
,4
,0
,1
,2
,3
,4
,0
,1
,2
,3
,4
); var podstawaKolumny = nrKolumna[thisPole] * 15;
var newLiczba;
do {
newLiczba = podstawaKolumny + getLiczba();
}
while (uzyteLiczby[newLiczba]);
uzyteLiczby[newLiczba] = true;
document.getElementById(nrPola).innerHTML = newLiczba;
document.getElementById(nrPola).className = ""; // 1 pobranie wartości class danego pola?
document.getElementById(nrPola).onmousedown = toggleColor; //2 wywołanie funkcji po kliknięciu na dane pole
}
function getLiczba() {
return (Math
.floor(Math
.random
() * 15
) + 1
); }
function innaKarta(){
for (var i=0; i<uzyteLiczby.length; i++){
uzyteLiczby[i] = false;
}
newKarta();
return false;
}
function toggleColor(){
/* if (evt){
var thisPole = evt.target;
}
else{
var thisPole = window.event.srcElement; //3 w tym komentarzu zawarta instrukcja jest dla explorera (wg książki)
}*/
if (thisPole.className == ""){
thisPole.className = "pickedBG"; //4 przypisanie parametrowi class wartości pickedBG
}
else{
thisPole.className = "";
}
}
Proszę o wyjaśnienie komentarzy 1, 2, 3, 4 czy dobrze je rozumiem.
W 4 komentarzu nadawana jest wartość pickedBG dla class, czy tak?
Jeśli tak to rozumiem że wystarczy zdeklarować w css kolor dla pickedBG, jednak ja robię to w ten sposób to nie działa, karta jest generowana ale nie można zaznaczyć żadnego pola.
Jak mam to rozwiązać, ewentualnie gdzie mam błędy w skrypcie.
Kod html to zwykła tabela 5x5.