Accueil > Forum > > > > Problème setTimeout et poo - valeur qui ne change pas (au secours...)
Problème setTimeout et poo - valeur qui ne change pas (au secours...)
dimanche 31 août 2008 à 14:34:26 |
Problème setTimeout et poo - valeur qui ne change pas (au secours...)

0Philooz0
|
Bonjour, J'ai un problème (  depuis maintenant deux jours  ) avec le bout de code suivant: / //Portion de code qui pose problème. function MaClasse(){ this.Local=this; this.Mamethodeaproblemes = function(objet,j){ var i; for(i=0,i<j,i++){ setTimeout(function(){ this.Local.Uneautremethode(objet,i); },i*100); } } this.Uneautremethode=function(objet,valeur){ //Fait des trucs sur objet. objet.propriete=valeur; } }
//Nouvel objet. var unobjet=new Object; var monobjet=new MaClasse(); monobjet.Mamethodeaproblemes(unobjet,50); ////Je m'explique. Ce code doit appeler une fonction avec setTimeout (afin d'affecter à objet.propriete les valeurs successives (de 0 à j). Le problème, c'est que la valeur de i envoyée sur monobjet.Uneautremethode(unobjet,i); est toujours la même... S'il vous plaît... Aidez-moi! Je deviens  ... Merci! Philooz
|
|
dimanche 31 août 2008 à 14:43:59 |
Re : Problème setTimeout et poo - valeur qui ne change pas (au secours...)

0Philooz0
|
Oups... Erreur de recopiage. J'ai for(i=0;i<j;i++){ et nonfor(i=0,i<j,i++){, de même, var Local=this;et nonthis.Local=this;.
|
|
dimanche 31 août 2008 à 17:01:26 |
Re : Problème setTimeout et poo - valeur qui ne change pas (au secours...)

bizibiz17
|
Salut,
C'est un string qu'il faut passer en paramètre de setTimeout :
setTimeout(String fonc, Integer delai)
|
|
dimanche 31 août 2008 à 18:42:35 |
Re : Problème setTimeout et poo - valeur qui ne change pas (au secours...)

0Philooz0
|
Pour un appel de fonction, certes. Mais depuis JS 1.1, on peut passer une fonction. Une solution serait de passer i par valeur. Quelqu'un a une idée?
|
|
dimanche 31 août 2008 à 19:06:20 |
Re : Problème setTimeout et poo - valeur qui ne change pas (au secours...)

tonytruand
|
salut A tester : for(i=0;i<j;i++){ setTimeout(function(){ this.Local.Uneautremethode(objet,i); };i*100);
il faut mettre des " ; " ici, il a peut être autre chose , mais ceci est à rectifier  
|
|
dimanche 31 août 2008 à 19:17:45 |
Re : Problème setTimeout et poo - valeur qui ne change pas (au secours...)

0Philooz0
|
Merci pour votre aide, tonytruand, mais cela ne fonctionne pas. Apparemment, il semblerait que JS "transmet" la dernière valeur de i obtenue. Dans mon code, si je mets / //Portion de code qui pose problème. function MaClasse(){ var Local=this; this.Mamethodeaproblemes = function(objet,j){ var i; for(i=0,i<j,i++){ setTimeout(function(){ Local.Uneautremethode(objet,i); alert(i); },i*100); } } this.Uneautremethode=function(objet,valeur){ //Fait des trucs sur objet. objet.propriete=valeur; } }
//Nouvel objet. var unobjet=new Object; var monobjet=new MaClasse(); monobjet.Mamethodeaproblemes(unobjet,5); ////
J'ai le bon nombre d'appels (5), j'ai le bon timing, mais j'ai 5 fois la valeur 5... Je me torture avec des eval() et autres, mais impossible de récupérer cette fichue valeur de i! 
Je commence à désespérer... 
|
|
dimanche 31 août 2008 à 19:28:53 |
Re : Problème setTimeout et poo - valeur qui ne change pas (au secours...)

bizibiz17
|
Réponse acceptée !
A priori la valeur de i doit être ici passée par référence = un pointeur, du coup lorsque tu essaies de lire sa valeur, tu lis la valeur que i possède à cet instant donc a priori la dernière car le code se déroulera plus vite que ton timeOut. La solution serait donc comme tu disais un passage par valeur mais sur ce point je ne connais pas la solution, je ne sais même pas si c'est possible...
|
|
lundi 1 septembre 2008 à 06:06:39 |
Re : Problème setTimeout et poo - valeur qui ne change pas (au secours...)

bultez
|
Réponse acceptée !
bonjour, problème souvent évoqué mais comme on n'a pas toutes les billes pour appliqué à ton code, un ch'tiot exemple sur des éléments html : tu comprendras le principe <html> <body> <form name="frm"> <input type="text" name="t" value="un" /> <input type="text" name="t" value="deux" /> <input type="text" name="t" value="trois" /> </form> <script type="text/javascript"> for( var n=0; n<document.frm.t.length; n++) { var Obj = document.frm.t[n];
méthode 1
Obj.numChp = n; Obj.onmouseover = function () { alert ( this.numChp ); }
méthode 2
Obj.onclick = function(index) { return function() { alert(index+1);}; } (n);
} </script> </body> </html>
|
je me garderais bien de te dire quelle méthode est la meilleure !
|
|
lundi 1 septembre 2008 à 07:43:05 |
Re : Problème setTimeout et poo - valeur qui ne change pas (au secours...)

bultez
|
ch'tiote erreur : j'ai mis onclick sur l'un et onmouseover sur l'autre, "bien entendu" c'est pour le même evênement.
|
|
lundi 1 septembre 2008 à 08:50:25 |
Re : Problème setTimeout et poo - valeur qui ne change pas (au secours...)

0Philooz0
|
Merci, je vais essayer de me débrouiller avec ça.
|
|
Cette discussion est classée dans : problème, function, objet, valeur, settimeout
Répondre à ce message
Sujets en rapport avec ce message
setTimeout [ par DarkCid ]
Bonjour,j'essaye de créer mon objet compte à rebours pour mon site. pour l'instant, j'ai ceci :function Timer(){ var time = ''; var c
problème avec domready (je pense) [ par jpegb4 ]
Bonjour à tous !voilà je débute doucement en Ajax j'utilise mootools pour m'en sortir un peu mieux.J'ai intégré aussi le script multibox de phatfusion
Problème de SetTimeOut() [ par Jpeg69 ]
Bonjour tout le monde !J'ai un léger soucis avec le SetTimeOut().Je l'utilise naturellement pour gérer un compte à rebours.Celui-ci marche parfaitemen
Problème de Refresh [ par nabmoah ]
Salutj'ai trouvé ce bout de code sur ce forum et j'ai essayé de le faire marché mais sans succès.le problème c'est que la page m'affiche toutes les 2
Problème de setTimeout OU de modification de variable ??? [ par pcmanprogrammeur ]
Bonjour,J'ai un problème avec mon code Javascript. Je vous ai simplifié le principe pour plus de compréhension :var autorisation = true; function a(
Problême de setTimeout dans un objet [ par kurt67 ]
Salut à tous! Mon problême est assez simple et ça fait deux jours que je cherche une solution et je n'en ai pas trouvé. J'ai un objet avec des méthode
Selection d'une valeur via une fenetre popup [ par evenkil ]
Bonjour ,J"ai un petit problème avec une fonction javascript. Voici mon problème : j"ai un formulaire avec un nommé "photo1" dans lequel l?utilisat
Problème urgent et basique [ par Thireus ]
Bonjour, J'ai un petit problème javascript, le voici : J'aimerais récupérer la valeur bgcolor d'une balise tr en l'affichant dans une cellule :
Function et valeur [ par fidjay ]
Salut tout le monde alors voila, j'ai un petit soucis je doit pas mis prendre bien, j' arrive pas a faire passer une valeur dans ma fonction, j'ai che
Problème de passage de variable dans un formulaire [ par spaceyogourt ]
Salut tout le monde,j'ai un petit souci pour transmettre une variable sur une autre page.d'un côté j'ai un script qui affiche une zone si le contenu
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|