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 et limite d'increment


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Février 2009
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 205
    Par défaut setTimeout et limite d'increment
    Bonjour, j'ai un problème, mais d'abord je voudrais vous montrer ce que je voudrais faire :

    Dans une page web, j'ai 3 lignes comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div id='idLigne0'>2</div>
    <div id='idLigne1'>5</div>
    <div id='idLigne2'>2</div>
    Ensuite avec une fonction javascript, j'incrémente toutes les valeurs des lignes simultanément toutes les secondes ,
    càd que à la 1ère seconde:
    -à la 1ère ligne : le 2 devient 3,
    -à la 2ème ligne : le 5 devient 6,
    -et à la 3ème ligne : le 2 devient 3.

    puis à la 2ème seconde :
    -à la 1ère ligne : le 3 devient 4,
    -à la 2ème ligne : le 6 devient 7,
    -et à la 3ème ligne : le 3 devient 4.

    etc..

    Voici donc le code complet de la page web qui contient la fonction javacript en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <html>
    <head>
    </head>
    <body>
     
    <div id='idLigne0'>2</div>
    <div id='idLigne1'>5</div>
    <div id='idLigne2'>2</div>
     
    <script language='javascript'>
     
    function incrementerTouteLesSecondes()
    {   
        for(n=0;n<=2;n++)
        {     
             objLigne=new Array();                                //On sélectionne tous les id des lignes
             objLigne[n]=document.getElementById("idLigne"+n);
     
             valeurDansLaLigne=new Array();                       //On récupère les valeurs de chaque ligne
             valeurDansLaLigne[n]=objLigne[n].innerHTML;
             valeurDansLaLigne[n]=eval(valeurDansLaLigne[n]);
     
             valeurDansLaLigne[n]=valeurDansLaLigne[n]+1;         //On incrémente de 1 à toutes les valeurs des lignes simultanément
     
             objLigne[n].innerHTML=valeurDansLaLigne[n];          //Puis on affiche les nouvelles valeurs, càd les valeurs qu'on vient d'incrémenter
        }
     
        setTimeout("incrementerTouteLesSecondes()",1000);         //Puis on récommence
     
    }
     
     
    incrementerTouteLesSecondes();   //On lance la fonction incrementerTouteLesSecondes()
     
    </script>
     
    </body>
    </html>
    Et donc ce que je n'arrive pas à faire, c'est que si une des lignes a atteint la valeur 10, et bien on arrète d'incrémenter cette ligne.

    Par exemple : imaginons que la valeur de la 2ème ligne a atteint la valeur 10, et donc on n'incrémente plus le 10,
    et que la valeur de la 1ère et celle de la 3ème ligne continuent d'incrémenter car elles n'ont pas encore atteint la valeur 10.

    Est-ce que quelqu'un sait comment il faut faire ?, je suis dessus depuis midi...

    Merci d'avance, cordialement

  2. #2
    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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <html>
    <head>
    </head>
    <body>
     
    <div id='idLigne0'>2</div>
    <div id='idLigne1'>5</div>
    <div id='idLigne2'>2</div>
     
    <script language='javascript'>
     
    function incrementerTouteLesSecondes()
    {   max=0
        for(n=0;n<=2;n++)
        {    objLigne=new Array();                                //On sélectionne tous les id des lignes
             objLigne[n]=document.getElementById("idLigne"+n);
             valeurDansLaLigne=new Array();                       //On récupère les valeurs de chaque ligne
             valeurDansLaLigne[n]=objLigne[n].innerHTML;
             valeurDansLaLigne[n]=(valeurDansLaLigne[n]<10)?+valeurDansLaLigne[n]+1:+valeurDansLaLigne[n];         //On incrémente de 1 à toutes les valeurs des lignes simultanément
             objLigne[n].innerHTML=valeurDansLaLigne[n];          //Puis on affiche les nouvelles valeurs, càd les valeurs qu'on vient d'incrémenter
             max+=valeurDansLaLigne[n]
        }
        if(max<30){ 
        setTimeout("incrementerTouteLesSecondes()",1000);         //Puis on récommence
        }
    }
     
     
    incrementerTouteLesSecondes();   //On lance la fonction incrementerTouteLesSecondes()
     
    </script>
     
    </body>
    </html>
    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 !

  3. #3
    Membre très actif
    Inscrit en
    Février 2009
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 205
    Par défaut
    WWWWWoWWWW !, merci beaucoup, t'es aussi rapide qu'un éclair,tu me donne la réponse en 3minutes, alors que ça va faire 5h que je cherche la solution.

    Je vais tester toute suite ta réponse

    Je vais te dire si ça a marché ou pas

    a+

  4. #4
    Membre très actif
    Inscrit en
    Février 2009
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 205
    Par défaut
    Merci ça marche trop bien !!

    Pour finir, peux tu m'expliquer la ligne que tu as mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    valeurDansLaLigne[n]=(valeurDansLaLigne[n]<10)?+valeurDansLaLigne[n]+1:+valeurDansLaLigne[n];
    c'est le point d'interrogation et les deux points que j'ai pas compris (car c'est la première fois que je rencontre cette syntaxe en javascript),
    s'il te plait peux tu 'expliquer ?

    Merci encore

  5. #5
    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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (condition)? action si vrai : action si faux ;
    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 !

  6. #6
    Membre très actif
    Inscrit en
    Février 2009
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 205
    Par défaut
    encore merci pour cette explication.
    j'ai aussi deviné que le + après le ? et le : signifie aussi le eval().

    Un autre truc aussi, pourquoi tu as mis la variable max, quelle est son intéret ?

  7. #7
    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
    Par défaut
    en fait j'ai fait ça vite fait, mais il faudrait éviter l'addition et éviter l'affichage, mais ça fonctionne quand même comme ça ...
    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 !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Turbo Pascal] Limite de la mémoire virtuelle
    Par moon tiger dans le forum Turbo Pascal
    Réponses: 12
    Dernier message: 08/02/2003, 22h30
  2. Pb d'auto-incrément sur une table v7
    Par Nivux dans le forum Paradox
    Réponses: 9
    Dernier message: 26/12/2002, 12h05
  3. Limiter le déplacement de la souris
    Par el_bouleto dans le forum C++Builder
    Réponses: 4
    Dernier message: 08/11/2002, 23h56
  4. Comment limiter les mouvements du curseur??
    Par scorpiwolf dans le forum C++Builder
    Réponses: 9
    Dernier message: 07/07/2002, 22h09
  5. [Comparatifs] Limites nombres tables et quantité de données
    Par benj63 dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 13/06/2002, 21h31

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