IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Variable globale, pas globale.


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 43
    Points : 34
    Points
    34
    Par défaut Variable globale, pas globale.
    Bonjour

    Je suis en train de créer un menu déroulant. Pour cela je crée en début de script une variables globale : var div=document.getElementById("dd");

    que je modifie dans diverse fonction avec : div.style.height=taille+"px";

    la problème est que ma variable global n'est pas détecté dans mes fonction.
    Je n'arrive pas a comprendre pourquoi, qui pourrez me l'expliquer ?

    pour que sa fonction je dois déclarer ma variable global dans chaque fonction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    <style type="text/css">
    <!--
    #dd {
    	background-color: #999;
    	width: 200px;
    	border-top-width: 1px;
    	border-right-width: 1px;
    	border-bottom-width: 1px;
    	border-left-width: 1px;
    	border-top-color: #000;
    	border-right-color: #000;
    	border-bottom-color: #000;
    	border-left-color: #000;
    }
    -->
    </style>
    </head>
     
    <body>
     
    <a href="#" title="cliquez ici" onclick="test()">Cliquez ici</a>
     
    <script type="text/javascript">
     
    //var div=document.getElementById("dd");
     
    function test(){
     
    	var div=document.getElementById("dd");
    	alert(div);
    	var taille=div.style.height;
     
    	alert(taille);
     
    	if(taille=="0px"){
     
    		alert('debut');
    		derou(0);
     
    	}
    	else if(taille=="400px"){
     
    		alert("fin");
    		enrou(400);
    	}
    }
     
    function derou(taille){
     
    	var div=document.getElementById("dd");
     
    	if (taille<400){
     
    		taille+=2;
    		div.style.height=taille+"px";
     
    		setTimeout(function(){derou(taille)},10);
    	}
    }
     
     
    function enrou(taille){
     
    		var div=document.getElementById("dd");
     
    		taille-=2;
    		div.style.height=taille+"px";
     
     
    		setTimeout(function(){enrou(taille)},10);
     
    }
     
    </script>
     
    <div id="dd" style="height:0px; overflow: hidden">
      <ul>
      	<li>gdfgdfgdfgdfgfdg</li>
        <li>fdsfsdg</li>
        <li>gdfgdfgdfgdfgfdg</li>
        <li>fdsfsdg</li>
        <li>gdfgdfgdfgdfgfdg</li>
        <li>fdsfsdg</li>
        <li>gdfgdfgdfgdfgfdg</li>
        <li>fdsfsdg</li>
        <li>gdfgdfgdfgdfgfdg</li>
        <li>fdsfsdg</li>
        <li>gdfgdfgdfgdfgfdg</li>
        <li>fdsfsdg</li>
        <li>gdfgdfgdfgdfgfdg</li>
        <li>fdsfsdg</li>
        <li>gdfgdfgdfgdfgfdg</li>
        <li>fdsfsdg</li>
        <li>gdfgdfgdfgdfgfdg</li>
        <li>fdsfsdg</li>
      </ul>
    </div>
     
    <div>
    sdfjsfjshfskjhfkjsdfhkjdshfskjdhfkdsjf
    </div>
     
    </body>
    merci pour votre aide

  2. #2
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Salut,

    Le chargement de la page se fait de haut en bas. Quand tu déclares la variable globale document.getElementById("dd") n'existe pas encore.
    Il faut placer le script juste avant </body>.

    Je n'ai pas regardé le reste.
    Les Cours et tutoriels JavaScript
    Penser à la recherche et au bouton

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 43
    Points : 34
    Points
    34
    Par défaut
    Sa marche merci beaucoup.

    la solution est d'un bête en plus .....

    je pensé qu'il chargé le HTML en premier puis le javascript de haut en bas.

    merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD15] Variable globale, pas tout à fait globale
    Par tux59 dans le forum WinDev
    Réponses: 14
    Dernier message: 16/04/2010, 17h47
  2. Probleme : Variables globales pas accessible
    Par ickylevel dans le forum Général Python
    Réponses: 7
    Dernier message: 09/08/2007, 21h26
  3. variables locales ou globales?
    Par molesqualeux dans le forum C
    Réponses: 20
    Dernier message: 09/11/2005, 23h03
  4. Réponses: 6
    Dernier message: 14/02/2005, 11h53
  5. variables locales ou globales ???
    Par elvivo dans le forum C
    Réponses: 13
    Dernier message: 03/07/2002, 08h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo