SetTimeout [Résolu]

Signaler
Messages postés
195
Date d'inscription
mardi 22 février 2005
Statut
Membre
Dernière intervention
26 octobre 2009
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
Bonjour,

j'essaye de créer mon objet compte à rebours pour mon site. pour l'instant, j'ai ceci :

function Timer(){
   var time         = '';
   
    var changeTime = function(){
        alert('go');
    }
   
    this.startTime = function(){
        time = setTimeout('this.changeTime()', 1000);
    }
   
    this.stopTime = function(){
        clearTimeout(time);
    }
}

mon problème c'est que quand je fais obj.startTime(), il ne veut pas executer changeTime(). Quelle syntaxe je dois mettre dans mes setTimeout pour qu'il execute une méthode de mon objet ?

<hr size="2" width="100%" />
Espérer le meilleur
Prévoir le pire

4 réponses

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
Bonjour,
une, parmis de nombreuses, façon d'y
arriver...
time = setTimeout(
function(){this[ changeTime]()}, 1000);

A voir un code que j'ai
commis il quelque temps, pas exaustif mais...
SETINTERVAL SETTIMEOUT CLASS
OBJET




De plus furetes dans les posts indiqués ci dessous  Sujets en rapport avec ce message



;O)
Messages postés
626
Date d'inscription
samedi 28 septembre 2002
Statut
Membre
Dernière intervention
18 mai 2009
3
"execute une méthode de mon objet"



Renseignes toi sur le binding.

<hr size="2" width="100%" />Projet en cours : Joof
Messages postés
195
Date d'inscription
mardi 22 février 2005
Statut
Membre
Dernière intervention
26 octobre 2009
1
cool merci !

j'ai du mettre
time = setTimeout(function(){changeTime()}, 1000);
pour que sa marche, mais sa marche !!

je vais pouvoir finir ma journée sans me cogner la tete contre un mur, sa va me changer tiens !

Espérer le meilleur
Prévoir le pire
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
la j'en ai écrit une GROSSE, il vaut mieux
var Obj = this;
time = setTimeout(
function(){ Obj["changeTime"]()}, 1000);
;O)