Arguments dans setInterval() ? [Résolu]

Signaler
Messages postés
647
Date d'inscription
samedi 30 décembre 2000
Statut
Membre
Dernière intervention
20 juillet 2012
-
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
-
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

Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
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.
@+
Messages postés
262
Date d'inscription
vendredi 6 mai 2005
Statut
Membre
Dernière intervention
19 septembre 2014

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++
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
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)
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
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))
@+
Messages postés
647
Date d'inscription
samedi 30 décembre 2000
Statut
Membre
Dernière intervention
20 juillet 2012
7
Bonjour,

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

JDMCreator
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
"celle" de petoleTeam fonctionnerait aussi ;o)
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
celle de Kimjoa
aussi, et celle de Félicie... itou !
;O)
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
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.