Javascript

Signaler
Messages postés
10
Date d'inscription
mardi 10 juillet 2007
Statut
Membre
Dernière intervention
26 mai 2008
-
cs_bultez
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
Est ce que c'est normal que l'interpréteur de script considère les variables objet "this.i" comme undefined dans une fonction appelé par la fonction setInterval ?

Ä Æ È É Æ  ÃÃ

7 réponses

Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
30
chaleureux Bonjour à toi aussi
,
    >>

Est ce que c'est normal...
    non
<hr />merci grandement pour ta question            Bul         [mon Site]     [M'écrire]
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
25
En vu de la question, répondrai comme bultez par contre c'est pas bien d'oublier de dire bonjour et merci !


 


a++



Si t'a besoin d'aide, MP !!!
Un forum...
Messages postés
10
Date d'inscription
mardi 10 juillet 2007
Statut
Membre
Dernière intervention
26 mai 2008

function Enlever_Prog(){


 var dv = '';
 
   
 try
 { 
  if(Cpt_e < (Ind_item_e*2))
  {
  
   dv = parseInt(Div_princ_e.style.height) - Hauteur_item_e/2;
   Div_princ_e.style.height = dv;
   Cpt_e++;
   window.setTimeout("this.Enlever_Prog()", 30);
   
   
  }
  else
  {
   Cpt_e = 0;
   locked = false;
   
  
  }
  
 }
 catch(e)
 {
  alert(e.description);
  alert(e.number & 0xFFFF);
  alert('dv : ' + dv);
  locked = false;
 
 }


}

Div_princ_e contient this.div_princ = document.getElementById('titre_0');
si je met une variable globale Div_princ_e qui contient this.div_princ au lieu de this.div_princ lui même , ça ne bug pas. ça vient du setTimeout. ça met variable undefined




Ä Æ È É Æ  ÃÃ
Messages postés
10
Date d'inscription
mardi 10 juillet 2007
Statut
Membre
Dernière intervention
26 mai 2008

Tout comme Ind_item qui contient this.ind_item et hauteur_item qui contient this.Hauteur_Item

Ces variables ont été dans une fonction

function Menu(top, left, hauteur_item, largeur, titre){


 this.Top = top;
 this.Left = left;
 this.Hauteur_Item = hauteur_item;
 this.Hauteur = hauteur_item;
 this.Largeur = largeur;
 this.Ind_Item = 0;
 this.Tab_Item = new Array();
 this.cpt = 0;
 this.aff_prog = '';
 this.lock = false;




Ä Æ È É Æ  ÃÃ
Messages postés
10
Date d'inscription
mardi 10 juillet 2007
Statut
Membre
Dernière intervention
26 mai 2008

la fonction entière :

function Menu(top, left, hauteur_item, largeur, titre){


 this.Top = top;
 this.Left = left;
 this.Hauteur_Item = hauteur_item;
 this.Hauteur = hauteur_item;
 this.Largeur = largeur;
 this.Ind_Item = 0;
 this.Tab_Item = new Array();
 this.cpt = 0;
 this.aff_prog = '';
 this.lock = false;
 
 document.write('

' + titre + '

');
 

 this.Tab_Item[this.Ind_Item] = 'titre_0';
 this.Ind_Item++;
 this.div_princ = document.getElementById('div_princip');
 this.div_princ.style.height = 0;
 this.Ajouter_Item = Ajouter_Item;
 this.Get_Item_ID = Get_Item_ID;
 this.Get_Nb_Item = Get_Nb_Item;
 this.Cacher_Item = Cacher_Item;
 this.Afficher_Item = Afficher_Item;
 this.Affichage_Progressif = Affichage_Progressif;
 this.Affichage_Prog = Affichage_Prog;
 this.Enlever_Progressif = Enlever_Progressif;
 this.Enlever_Prog = Enlever_Prog;
 
 




}




Ä Æ È É Æ  ÃÃ
Messages postés
10
Date d'inscription
mardi 10 juillet 2007
Statut
Membre
Dernière intervention
26 mai 2008

En fait, ça ne marche pas si on ne met pas les variables du type this.variable dans des variables globales. Pourquoi?

Ä Æ È É Æ  ÃÃ
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
30
il faut debogger.

FireFox
, regarder la "console d'erreurs"
Outils / Console d'erreurs
et mieux : télécharger mon Site]     [M'écrire]