Autor Zpráva
Děda
Profil *
Zdravím, nejsem starší muž který měl trošku zkušenosti s výrobou stránek a JavaSkriptů v počátcích Internetu.
Chtěl jsem udělat dětem kvíz - vždy kliknou na 3 správné varianty dotazu a pak se dostanou do dalšího kola. Jenže ono mi to nesčítá. Kde mám prosím chybu?

<script> 
var hotovo;
hotovo = nahoda+nahodab+nahodac;

function plast(){
var nahoda = Math.ceil(Math.random()*1);
document.getElementById("plast").innerHTML=nahoda;
}

function sklo(){
var nahodab = Math.ceil(Math.random()*1);
document.getElementById("sklo").innerHTML=nahodab;
}

function rouska(){
var nahodac = Math.ceil(Math.random()*1);
document.getElementById("rouska").innerHTML=nahodac;
}

if (hotovo = 3) {window.location="dalsi_hra.htm";}

</script> 
anonym_
Profil *
Děda:
Otevři si konzoli a zjistíš, kde je problém. Napovím, hned na 3. řádku.
Děda
Profil *
anonym: díky, jak otevřu to konzoli.
anonym_
Profil *
Děda:
Zde nebude problém jen v základech JS, ale i v používání vyhledávače.

U mě v Mac/safari Command+option+I, na Widnowsech pravdpodobně F12 nebo Ctrl+Alt/Shift+I. Možná prohlížeč od prohlížeče, zapoj trochu snahy a vlastní iniciativy.
blaaablaaa
Profil
Děda:
Většinou pomocí F12.

Problém je v tom, že Váš kód nedává smysl.

Na 3. řádku sčítáte 3 proměnné, které neexistují, pak jsou tří funkce, které dovnitř elementů plast/sklo/rouska přes proměnnou přiřadí vždy 1 (Math.random vygeneruje náhodné číslo 0-1, vynásobení jedničkou nic neudělá a Math.ceil číslo vždy zaokrouhlí nahoru na 1).

Chybí nějaké odchycení kliknutí a prakticky jakákoliv logika.
anonym_
Profil *
Děda:
Plus začni základem JS.

Špatně je řádek 3. Proměnné nejsou definované.
Špatně je nepochopení platnosti proměnných (scope). Proměnná nahoda nebude existovat ani za řádkem 8, ta existuje jen uvnitř funkce plast().
Funkce máš definované, ale nikde je nevoláš (tedy nic nevrací).
Elementy, které hledáš na ř. 7, 12, 17 pravděpodobně neexistují. Alespoň ne v tomto fragmentu kódu.

Atd.
Děda
Profil *
díky za postřehy, díky nim jsem to přetvořil takto a funguje to

<script> 
var hotovo;
var nahoda = 0;
var nahodab = 0;
var nahodac = 0;
hotovo = 0;

function plast(){
nahoda = 1;
document.getElementById("plast").innerHTML=nahoda;
hotovo = nahoda + nahodab + nahodac;
if (hotovo ==3) {window.location="dalsi_hra.htm";}
}

function sklo(){
nahodab = 1;
document.getElementById("sklo").innerHTML=nahodab;
hotovo = nahoda + nahodab + nahodac;
if (hotovo ==3) {window.location="dalsi_hra.htm";}
}

function rouska(){
nahodac = 1;
document.getElementById("rouska").innerHTML=nahodac;
hotovo = nahoda + nahodab + nahodac;
if (hotovo ==3) {window.location="dalsi_hra.htm";}
}

</script> 

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0