Arguments dans setInterval() ?

Résolu
jdmcreator Messages postés 647 Date d'inscription samedi 30 décembre 2000 Statut Membre Dernière intervention 20 juillet 2012 - 17 avril 2009 à 03:42
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 - 17 avril 2009 à 14:56
Bonjour,

décidément, setInterval et setTimeOut() sont des fonctions qui m'auront causé beaucoup de problème !

Bon, pour en venir au vif du problème, je voulais savoir si l'ont pouvait passer un argument dans la fonction appelé par setTimeOut() mais en variable. Du genre

test='allo';
setInterval("alert(test)",1000);

Voici donc le code où j'ai tant besoin de ceci :

<SCRIPT language=javascript>
var numberorder='0';
var order = new Array();
order[0] = "MoveHori('75px')";
order[1] = "MoveVerti()";
var position='';
function MoveHori(max) {
for (var i=0; i<document.getElementById('test').style.top.length-2; i++) {
position=position+''+document.getElementById('test').style.top.charAt(i);
}
document.getElementById('test').style.top=eval(position)+1+'px';
position='';
if(document.getElementById('test').style.top!=max)
{
var testest = setInterval("MoveHori(max)",1);
}
else
{numberorder++;location.href='javascript:'+order[numberorder];}
}
function MoveVerti() {
for (var i=0; i<document.getElementById('test').style.left.length-2; i++) {
position=position+''+document.getElementById('test').style.left.charAt(i);
}
document.getElementById('test').style.left=eval(position)+1+'px';
position='';
if(document.getElementById('test').style.left!='75px')
{
setTimeout("MoveVerti()",10);
}
}
</SCRIPT>




Merci beaucoup de votre aide,

JDMCreator

8 réponses

Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
17 avril 2009 à 06:39
bonjur,
>>passer un argument dans la fonction appelé
>>par setTimeOut() mais en variable
c'est possible, et pour faire toujours la
même chose quelles que soient les circonstances :

var timid=setTimeout( function()
{ la_fonction(les paramètres); }, délai );
ou bien sûr { les 'n' instructions javascript; }, délai );

on pourrait faire autrement, mais comme ça, ça
me semble le plus simple syntaxiquement.

pareil avec setInterval.
@+
3
cs_Kimjoa Messages postés 262 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 19 septembre 2014
17 avril 2009 à 13:11
bonjour , la méthode de Bul3 est tout à fait juste, je t'en propose une encore plus simple en passant par le prototype de Function

Function.prototype.callBack=function(){      var __method this, args Array.prototype.slice.call(arguments,0);
      return function() {
           return __method.apply(this, args);
      }
}

après t'as juste à faire :

var timid=setTimeout( maFonction.callBack(arg1,arg2 ... ),30);

voilà a++
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
17 avril 2009 à 13:57
Bonjour,
pourquoi ne pas parler de la variante
chaîne passée à la méthode setTimeout
var param_1 = "Bonjour";

var param_2 = "Vous";
var Cde = 'Fct_Appel("' + param_1 +'","' +param_2 +'")'
var idTimer = setTimeout( Cde ,
100);
Attention toutefois à bien mettre
les guillemets si il s'agit de paramètres de type chaîne comme dans l'exemple ci dessus...
;O)
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
17 avril 2009 à 14:10
t'as raison petoleTeam bien entendu
       c'est une autre ( ou l'autre ? ) façon de faire
je n'emploie plus, car doué comme je suis, je
       me plante toujours dans ces " et ces '        ;o)
je préfère donc :
var timid=setTimeout( function()
  { Fct_Appel( param_1, param_2 ); }, 100 );

remarque que si tu me dis que tu te plantes dans les ( et les { ...     ;o))
@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jdmcreator Messages postés 647 Date d'inscription samedi 30 décembre 2000 Statut Membre Dernière intervention 20 juillet 2012 7
17 avril 2009 à 14:12
Bonjour,

La solution de Bul3 fonctionne parfaitement. Un grand merci à vous 3 !

JDMCreator
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
17 avril 2009 à 14:22
"celle" de petoleTeam fonctionnerait aussi ;o)
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
17 avril 2009 à 14:33
celle de Kimjoa
aussi, et celle de Félicie... itou !
;O)
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
17 avril 2009 à 14:56
Félicie arrive de sa Bourgogne
et moi, j'arrive en taxi
on trouve vite une occasion
d'engager la conversation.... n'est-il pas.
0
Rejoignez-nous