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 |
#2 · Zasláno: 12. 12. 2017, 19:48:47
Napsal bych to takto.
|
||
JardaB Profil |
#3 · Zasláno: 12. 12. 2017, 21:38:11
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 |
#4 · Zasláno: 13. 12. 2017, 00:34:50
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 |
#5 · Zasláno: 13. 12. 2017, 07:36:55
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 |
#6 · Zasláno: 13. 12. 2017, 12:47:08
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 |
#7 · Zasláno: 13. 12. 2017, 13:07:01
Díky za vysvětlení...
|
||
Časová prodleva: 6 let
|
0