Autor | Zpráva | ||
---|---|---|---|
Rararach Profil * |
#1 · Zasláno: 11. 3. 2018, 00:26:23
Ahoj. Má to vypsat 10x ahoj a při 8. opakování pak: Máš to skoro hotové - ale nedaří se.
Myslím že to neumím správně vnořit, možná to chce jiný příkaz, ale zatím se to učím. Díky moc. <p id="zap" onclick="zapni()">Zapni to !!</p> <p id="vysl">...</p> <script> function zapni(){ for (var a = 1; a <=10 ; a++) { (function(index) { setTimeout(function() { document.getElementById("zap").innerHTML+= "ahoj, ";}, a * 500);})(a);} if(a>7){document.getElementById("vysl").innerHTML="Už máš skoro hotovo";} } </script> |
||
Surikata Profil * |
Rararach:
Podmienku vnor priamo do cyklu. Inak v cykle for je nechutarna pouzivat podmienku <= v talychto situaciach, indexuj vypisi od nuly. Pre cykly for je "dohodnute programatorske pravidlo, pouzivat premenne i,j,k; Surikata: To functin(index) tam moc nechapu |
||
Kajman Profil |
Rararach:
Je to skoro dobře. Ten if pro skoro hotové má být uvnit anonymní funkce natažené přes setTimeout. A v ní je pak potřeba používat proměnnou index, protože v a bude ve chvíli zpožděného vykonání už 11 - takže máte dobře našlápnutou k využití lexikální uzávěry, jen ji použijte. <script> function zapni() { for (var a = 1; a <=10 ; a++) { (function(index) { setTimeout(function() { document.getElementById("zap").innerHTML+= "ahoj, "; if(index>7) { document.getElementById("vysl").innerHTML="Už máš skoro hotovo"; } }, index * 500); })(a); } } </script> <p id="zap" onclick="zapni()">Zapni to !!</p> <p id="vysl">...</p> Edit: ale než natáhnout najednou n timeoutů, bylo by efektivnější použít např. setInterval a počítat si v něm počet vykonání. Počítám, že tento příklad je spíše pro to pochopení nakládání s proměnnými bez reálného nasazení. |
||
Časová prodleva: 6 let
|
0