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 :

fonction répétitive avec setTimeOut()


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par défaut fonction répétitive avec setTimeOut()
    bonsoir

    j'essaye de faire une fonction repetitive qui m'affiche un couple de variables prises de façon aléatoire dans des tableaux.

    voici mon script:

    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
     
     
    <body>
    <script type='text/javascript'>
    var position= new Array;
    var pos="";
     
    function change(){
    <?php
    $positionH=array("left","right","center");
    $positionV=array("top","center","bottom");
    $randV=rand(0,2);
    $ver=$positionV[$randV];
    $randH=rand(0,2);
    $hor=$positionH[$randH];
    echo "position[0]='$ver';";
    echo "position[1]='$hor';";
    ?>
    var pos=position[0]+" "+position[1];
    document.write(pos);
    timerID = setTimeout("change()",2000);
    };
     
    change();
     
     </script>
    </body>
    mon problème c'est que cela marche deux fois puis la console d'erreurs de Firefox m'indique : "change is not define"

    l'erreur semble provenir de mon setTimeOut("change()",2000) mais je ne comprends pas pourquoi...

    une fonction ne peut-elle pas s'appeler elle même ?

    Merci de vos réponses

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour
    Citation Envoyé par Alexdezark Voir le message
    une fonction ne peut-elle pas s'appeler elle même ?
    Si : ça s'appelle la récursivité, mais ça risque ici de te poser problème : appelle ton setTimeout() en dehors de change() ...

    Pour une répétition, utilise plutôt setInterval() ...

    A+

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par défaut
    Merci de ta réponse,
    je vais regarder du coté de setInterval().

    ça doit ressembler au setInterval d'actionScript... donc necessiter un clearInterval ... non?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par défaut
    pourquoi la fonction setTimeout pose-t-elle des problèmes dans mon cas ?

    l'aide que j'ai trouvé sur la fonction setInterval me conseille d'utiliser setTimeout ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    <SCRIPT language=javascript>
       function Timer() {
           var dt=new Date()
           window.status=dt.getHours()+":"+dt.getMinutes()+":"+dt.getSeconds();
           setTimeout("Timer()",1000);
       }
       Timer();
    </SCRIPT>

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par défaut
    Bon, en fait je viens d'essayer avec setInterval et j'ai toujour le même problème : mon script n'est éxécuté qu'une fois

    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
     
     
    <script type='text/javascript'>
    var position= new Array;
    var pos="";
     
    function change(){
    <?php
    global $positionH;
    global $positionV;
    $randV=rand(0,2);
    $ver=$positionV[$randV];
    $randH=rand(0,2);
    $hor=$positionH[$randH];
    echo "position[0]='$ver';";
    echo "position[1]='$hor';";
    ?>
    var pos=position[0]+" "+position[1];
    document.write(pos);
     
    };
    change();
    var timerID = setInterval("change()",2000);
     </script>
    Un script php peut-il bien être contenu dans une fonction javascript comme c'est le cas dans mon script ?

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 247
    Par défaut
    slt,

    oui et non ! en soit le script php n'est pas inclus dans ta fonction js, ce n'est que le résultat qui est inclus !

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

Discussions similaires

  1. [AJAX] Cumul de fonctions avec setTimeout
    Par seriux55 dans le forum jQuery
    Réponses: 0
    Dernier message: 16/11/2013, 18h52
  2. fonction avec setTimeOut et paramètres
    Par jeff74 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/10/2008, 19h26
  3. appel de fonction avec setTimeout
    Par mdr_cedrick dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/07/2008, 17h44
  4. fonction left avec sql server 6.5
    Par shake dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/06/2004, 08h48
  5. Fonction If avec rs.eof problème
    Par M1000 dans le forum ASP
    Réponses: 5
    Dernier message: 24/03/2004, 17h10

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