IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

SETTIMEOUT(); en javascript


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Directeur technique
    Inscrit en
    Juillet 2007
    Messages
    31
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : Directeur technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 31
    Par d�faut SETTIMEOUT(); en javascript
    Slt � tous,

    J'ai un petit probl�me avec une fonction "compte a rebour" :

    Entre HEAD et \HEAD j'ai mit :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <SCRIPT LANGUAGE="JavaScript">
    	 function compte_a_rebour(temps){
    	 var i=0;
    	 for (i = 0, i<temps, i++)
    	 {
    	  window.setTimeout("document.getElementById('temps').innerHTML='"+i+"';",i+"000")
    	 }
    	 }
         </script>
    Et dans ma page il y a :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    <body onLoad="compte_a_rebour('30');">
     
    <div id="temps"></div>
    Je comprends pas : le temps ne s'affiche pas dynamiquement, j'ai peut �tre fais des erreurs de syntaxe ( le javascript je m y fais pas ).

    Merci de me r�pondre au plus vite ^^

  2. #2
    Membre �m�rite Avatar de sharrascript
    Homme Profil pro
    D�veloppeur Web ind�pendant
    Inscrit en
    Avril 2007
    Messages
    678
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur Web ind�pendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Par d�faut
    bonsoir,

    Bon voici un petit code tap� � la vol�, je sais pas si c'est ce que tu souhaitais faire:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <SCRIPT language=javascript>
    var i= 30;
    function compte_a_rebour(){
    	i--;
    	if (i <= 0){
    		clearsetInterval(tempo);
    	}
    	document.getElementById("temps").innerHTML= i+";";
    }
    tempo= setInterval('compte_a_rebour()',2000);
    </SCRIPT>
    Bizarrement, si tu passe en dessus des 2000 c'est pas terrible.

    Bon, c'est juste un petit compte � rebour, je sais pas si c'est ce que tu souhaitais.

    A savoir que .setTimeout retardera l'effet d'une fonction � tant de millisecondes, setInterval agira toutes les X millisecondes

    Voil� ++

  3. #3
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  4. #4
    Membre averti
    Homme Profil pro
    Directeur technique
    Inscrit en
    Juillet 2007
    Messages
    31
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : Directeur technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 31
    Par d�faut
    Merci bcp ^^

  5. #5
    Membre chevronn�
    Inscrit en
    Novembre 2006
    Messages
    336
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Par d�faut
    On ne passe PAS de string � setTimeout, on lui passe une r�f�rence � une fonction ou au pire une fonction anonyme

    @Cruzty : Ton code qui est cens� corrig� des erreurs en am�ne pas mal d'autres :

    -Tu ne d�clare pas i, donc tu cr�es une variable globale.
    -Tu passe une string � setTimeout est c'est mauvais
    -Tu utilises deux fois le mot temps pour deux �lements totalement diff�rents
    -Tu appelles x fois la fonction document.getElementById pour faire une action sur le m�me element ( )
    -Tu appelles window.setTimeout ce qui est totalement inutile puisque la m�thode setTimeout fais partie du namespace global.
    -Accessoirement (-1*i)+temps et i*-1+temps font exactement la m�me chose, r�gle �lementaire d'arith�m�tique. D'ailleurs cette deuxi�me �criture est autrement plus claire.

    ET NOM D'UNE PIPE, on n'utilise PAS l'attribut language pour un script javascript;

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <script type="text/javascript"></script>

  6. #6
    Membre � l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    7
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 7
    Par d�faut
    J'ai simplement corrig� son code. Si j'avais a faire un compte a rebours, il est certain que je ne ferai absolument pas comme ca, en balancant x fois la fonction setTimeout avec des d�lais diff�rents. J'utiliserai setInterval pour d�cr�menter une variable en secondes, puis d�composer le tout en heures, minutes, secondes, etc...

    Je vais quand meme r�pondre pour etre plus clair :

    - i est la variable que j'utilise tout le temps dans mes boucles, et rien d'autre, je ne vois donc pas l'utilit� de la d�lcarer.
    - je reprend son code ( setTimeout(code,millisec[,lang]), pour moi, c'est bien une fonction qui est rentr�e, sauf qu'elle fait qu'une ligne)
    - je reprend son code
    - une fois de plus, je reprend son code. je ne ferai pas comme ca de toute facon, si on lance un compte a rebours de 10heures, j'imagine pas le carnage au chargement.
    - je reprend toujours son code, et ca ne change rien au fonctionnement
    - ce sont des habitudes de programmation, pour moi c'est plus clair avec les parentheses, pour toi non, chacun son style.
    - et j'ai bien utilis� l'attribut type.

    Il aurait �t� plus utile de ta part d'utiliser mes erreurs pour faire quelquechose de global, ainsi ajouter une solution pratique � ce probleme de compte a rebours. Et je trouve inutile de remanier le code fourni par quelqu'un, pour simplement montrer que l'on sait mieux faire. C'est pour cela aussi que j'ai utilis� la base de son code, sans vouloir faire � ma facon.

    Cordialement,
    Florian

  7. #7
    Membre � l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    7
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 7
    Par d�faut
    Bonjour !

    Comme tu as pu le deviner, il y a deja pas mal d'erreurs de syntaxe, effectivement. Pour ne pas te 'lacher' le code correct inutilement, je vais plutot �num�rer les quelques petites erreurs d'�tourderies que tu as faites, et qu'on a tous faites.. au passage

    Allons-y...

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    onLoad="compte_a_rebour('30');"
    Ici tu appelles ta fonction compte_a_rebour (rebours ) et tu passes en param�tre une valeur chaine, c'est a dire, du texte... ok jusque l�...

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    function compte_a_rebour(temps){
    	 for (i = 0, i<temps, i++)
    Mais ici, gros probl�me... tu essaies d'utiliser une valeur chaine en tant que nombre... et ca, pas bien Il faut, soit passer en param�tre un nombre (ce qui est le plus simple), soit, utiliser Number(temps) a CHAQUE fois

    De m�me ici, tu m�langes texte et nombres... seul un nombre est accept� dans ce param�tre, qui est le d�lai... multiplie tout simplement i par 1000

    - Derni�re remarque, si tu souhaites que ce soit un compte a rebours, (30 � 0) il faut inverser les conditions dans ta boucle for {}...

    J'esp�re que je t'aurai aid� a cerner les petites erreurs que tu as faites, et voici le code fonctionnel :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    <script type="text/javascript">
    function compte_a_rebour(temps){
    	for (i = temps; i>=0; i--)
    	{
    		window.setTimeout("document.getElementById('temps').innerHTML='"+i+"';",((-1*i)+temps)*1000);
    	}
    }
    </script>
    et
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <body onLoad="compte_a_rebour(30);">
    Cordialement,
    @+

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. JavaScript et setTimeout.Besoin information
    Par ovcrash dans le forum G�n�ral JavaScript
    R�ponses: 5
    Dernier message: 17/05/2009, 00h56
  2. JavaScript<---->ActionScript
    Par crazypiou dans le forum Flash
    R�ponses: 21
    Dernier message: 17/04/2009, 17h14
  3. Temporisation en javascript avec Settimeout function switch case
    Par Le_castor_d�chain� dans le forum G�n�ral JavaScript
    R�ponses: 5
    Dernier message: 01/01/2009, 22h46
  4. window.setTimeout [Javascript] [debutant]
    Par sebus dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 14/11/2006, 15h06
  5. [javascript] probl�me setTimeout
    Par LE NEINDRE dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 16/06/2006, 14h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo