- Home
- Categorie
- Coding e Sistemistica
- Javascript & Framework
- [javascript] numero ad incremento progressivo
-
Ciao gleenk,
la funzione incrementa viene richiamata?
-
ciao ayrton
cioè? in che senso?
-
Hai provato per esempio a mettere un alert dentro la funzione incrementa in modo tale da verificare che venga effettivamente richiamata dalla funzione setInterval?
-
Ciao ayrton. con l'alert funziona, il problema è il remove, anzichè mostrarmi il ciclo mi stampa direttamente 100
-
@gleenk said:
Ciao ayrton. con l'alert funziona, il problema è il remove, anzichè mostrarmi il ciclo mi stampa direttamente 100
E' corretto. Il codice fa questo.
Scrive 1 e lo elimina, scrive 2 e lo elimina fino a 100 senza infine eliminarlo.
-
Ok, e come faccio a fare in modo che però queste fasi vengano mostrate e non venga mostrata solo l'ultima? cioè come posso fare:
rimuovi
stampa (attendi 0.5secondi)
rimuovi ecc...
-
Cosi (non l'ho testata):
<script> $(document).ready(function () { for (indice=0;indice<100;indice++){ setInterval(function() { incrementa(indice); }, 500); } }); function incrementa(indice){ $('span.counter span').remove(); $('span.counter').append('<span>'+indice+'</span>'); } </script>
-
niet, esce sempre 100... uffffff
-
Prova cosi:
<script> $(document).ready(function () { var indice = 1; setTimeout(function() { incrementa(indice); }, 500); }); function incrementa(indice){ $('span.counter span').remove(); $('span.counter').append('<span>'+indice+'</span>'); if(indice<=100) { indice++; setTimeout(function() { incrementa(indice); }, 500); } } </script>
-
Siiiiiiiiiiiiiiiiii mitico ayrton!
ma dannazione xè così va? XD
-
@gleenk said:
Siiiiiiiiiiiiiiiiii mitico ayrton!
ma dannazione xè così va? XDPerché il for viene eseguito in millesimi di secondo (da 1 a 100) dunque ad occhio si vedeva solo l'effetto dell'ultimo for (il 100°)
In questo modo invece, con il setTimeout(), ogni volta che viene eseguita la funzione incrementa si attendono 0,5 secondi e poi viene richiamata nuovamente fino a quando indice non è maggiore di 100.