Autor Zpráva
JardaB
Profil
Zdravím, poradí někdo jak následující funkci opakovaně spustit kliknutním na odkaz? Viz. tento příklad. Poprvé se spustí, po druhé již ne... Některé věci hold v literatuře nenacházím..
Díky za rady a vysvětlení jak a proč to nejde...

<script>
function plus()
            {
               i++;
            if (i<=10){
            document.getElementById('prubeh').innerHTML = (i);
             setTimeout("plus()",1000);
            }
           }  
        </script>
        
        <a href="#" onclick ="plus();">Odečet</a>
Keeehi
Profil
Napsal bych to takto.
JardaB
Profil
A v čem je tedy problém u mého zápisu, že lze spustit jednou a podruhé se již nic neděje?
Keeehi
Profil
JardaB:
Například v tom, že nikde nenastavuješ jedničku na nulu. Zkus si taky několikrát poklepat na ten odkaz. Odpočet se zrychlí. To proto, že tam ten setTimeout je volaný několikrát.
JardaB
Profil
Moc díky, váš zápis jsem pochopil, ale už moc nerozumím tomu, že nemohu setTimeout volat vícekrát, ten přeci vykoná jednu akci a konec. Tento příklad odpočtu sem právě našel v jednom zdroji literatury ...
Keeehi
Profil
JardaB:
nemohu setTimeout volat vícekrát
Právě že ho volat vícekrát můžeš. A to se právě stane, když vícekrát klepneš na ten odkaz. A jelikož se za tu vteřinu všechny spustí, poposkočí ten čítač o tolik, kolik je jich spuštěných. Takže to vypadá, že to běží rychleji.
JardaB
Profil
Díky za vysvětlení...

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