Visualizzazione dei risultati da 1 a 9 su 9

Discussione: [JS] Help SetTimeout

  1. #1
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107

    [JS] Help SetTimeout

    Salve a tutti!

    mi date qualche dritta sull'utilizzo del settimeout?

    Mi servirebbe l'uso per una funzione base, ad esempio per stampare un numero ogni 2 secondi
    Guybrush Threepwood

  2. #2
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    vi posto il codice che sto usando.. ne sto uscendo pazzo :
    codice:
    <script>
    
    function fai() 
    { 	alert('ok');      }
    
    function manage_idonea(i)
    {
    var x=0;
    var idde;
    			while (x<10)
    			{			
    				idde=window.setInterval (fai(), 1000);
    				x=x+1;
    			}	
    }
    </script>
    Ora : quando premo il link che attiva la funzione MANAGE_IDONEA mi stampa SUBITO "OK" dopodichè mi da' errore "ARGOMENTO NON VALIDO" sulla riga del setinterval (o settimeout...)

    Ho provato anche a togliere il "IDDE=" e lasciare solo il window.setInterval, ma idem...

    Help help help
    Guybrush Threepwood

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Un errore di sintassi ed uno di logica.

    setTimeout("FUNZIONE", tempo)
    come vedi FUNZIONE e` racchiusa tra virgolette (o apici)


    Dentro un loop non ci puo` stare un setTimeout() e tanto meno un setInterval().

    Il setInterval() non puo` neppure stare dentro una funzione che viene richiamata piu` di una volta.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  4. #4
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    idem (qualcosa cambia.. ma dal secondo passagio si perde il timeout)

    In pratica, a me basterebbe un esempio : alertare 5 volte OK a distanza di 2 secondi..

    Non so perchè ma riesco ad impostare il timeout solo sul primo passaggio del loop

    questo è il mio codice (con una funzione + complessa...)

    codice:
    function luppa(doc,y)
    {
    		document.getElementById('divvo1').style.width=300;
    		alert (y);
    }
    
    function manage_idonea(i)
    {
    	var x=0;
    	var y=300;
    	while (x<10)
    	{		setTimeout("luppa();",3000);
    			
    			x=x+1;
    			y=y+10;
    	}
    }
    Guybrush Threepwood

  5. #5
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    up mattutino...


    Non capisco perchè questo codice funziona solo al PRIMO passaggio del ciclo e poi mi spara gli alert in fila
    codice:
    while (x<10)
    {		
       times=setTimeout("alert('OK');",1000);
        x=x+1;
        //clearTimeout(times);	
    }
    Guybrush Threepwood

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    perche' il ciclo (che sia while o che sia for e' identico) e' velocissimo,
    i timeout vengono settati praticamente contemporaneamente
    e scattano contemporaneamente

    setTimeout("alert('OK!');",1000*x);


    tieni conto che il tempo durante il quale l' alert e' mostrato viene considerato lo stesso

  7. #7
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    ecco il trucco era proprio un problema di concezione della funzione...

    Ora sto provando a usarla per la funzioen originale, cioò per creare un effetto all'apertura di una finestra...

    codice:
    while (x<10)
    {  times=setTimeout("document.getElementById('divvo1').style.width=
        document.getElementById('divvo1').style.width+30;",1000*x)	;
    x=x+1;
    Così non mi va ancora... ma non demordo
    Guybrush Threepwood

  8. #8
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    trovato il problema

    codice:
    document.getElementById('divvo1').style.width
    Vale 255px ma il valore è restiuto anche con "PX" per cui non ci posso aggiungere numeri
    Guybrush Threepwood

  9. #9

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.