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 :

getElementById ne fonctionne pas


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Homme Profil pro
    autodidacte
    Inscrit en
    Octobre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut getElementById ne fonctionne pas
    Bonjour,

    Voila après trois jours de recherches sans succès, j’espère que vous puissiez m'aider à solutionner ce problème.
    J'ai un drop menu qui s'active via getelementbyid. Le code marche bien si et seulement il est dans un fichier index.php mais la même code placé dans un fichier "user.html"
    qui est appelé via Header.html, ne fonctionne plus. Je pense à un profondeur sur la feuille mais je ne peut pas savoir quoi faire.

    Voila le code css: user.css

    Code css : 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
    <!--  start user.css -->
     
    #U_left{	float:left;}
     
    #U_center
    {
    	float:left;
    	width:55px;
    	font-size:13px;
    	text-align:center;
    	height:23px;
    	color:white;
    	border-right:1px solid white;
    }
     
    #U_right
    {
    	width:32px;
    	margin-left:85px;
    	padding-top:4px;
    	text-align:center;
    	height:26px;
    	font-size:13px;
    	text-align:center;
    	border-left:1px solid white;
    }
     
    #U_left img{	width:30px; }
     
    #U_container
    {
    	margin-left:250px;
    	width:117px;
    	border-top:3px solid black;
    	border-right:2px solid black;
    	border-left:3px solid black;
    	border-bottom:1px solid black;
    	-moz-border-top-right-radius: 2px;
    	border-radius:5px 5px 0px 0px;
    	background-color: black;
    }
     
    #U_container, #U_left { 	height:30px; }
     
    .Umenu_button
    {
        margin-top:-5px;
        background-color: black;
        height:32px;
        color: #fff;
    }
     
    .U_hidden_menu
    {
        color: white;
        width: 121px;
        height: 60px;
        margin-left: -89px;
        position: absolute;
        display: none;
        background-color: black;
    	border-top:1px solid #ccc;
     
        border-bottom:4px solid #ccc;
        -moz-border-bottom-right-radius: 20px;
        -moz-border-bottom-left-radius: 20px;
        border-radius:0px 0px 7px 7px;
    	border-right:2px solid #ccc;
     
    }
    #User_Button
    {
    	cursor:pointer;
    	height:19px
    	color:white;
    	font-size:23px;
    }
     
    .U_hidden_menu ul
    {
            list-style:none;
    	text-align:left;
    	margin-left:2px;
    	font-size:15px;
    }
     
    #Drop_Button {}
     
    <!-- fin user.css -->
    voici le code index.php ou user.html
    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
    <script type="text/javascript">
    function Show_User(){
        var menu = document.getElementById('Drop_Login');
     
        alert(menu);
     
        if(menu.style.display == 'block'){
            menu.style.display = 'none';
        }else {
            menu.style.display = 'block';
        }
    }
    </script>
     
    <body>
     
    <div id="U_container">
     <div id="U_left"><img src="/Img/Users/user.jpg" /></a></div>
     <div id="U_center">usernom</div>
     <div id="U_right">
      <div id="User_Button" class="Umenu_button" onclick="Show_User()">?</div>
      <div id="Drop_Login" class="U_hidden_menu"> <ul> <li>profile</li> <li>Exit</li> </ul> </div>
     </div>
    </div>
     
    </body>
    Voici le code via Header.html et le fichier index sera nommé en user.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <!--    Start  Header   -->
     
    <div class="HeaderMask Header">
     <div class="colmid">
      <div class="colleft">
       <div class="WcData"> <a href="#"><img src="/Img/logo.jpg" /></a> </div>
       <div class="WlData"> <a href=""><img src="/Img/biato.png" />  </a> </div>
       <div class="WrData"> <?php include('Root/Fr/Html/user.html'); ?> </div>
      </div>
     </div>
    </div>
     
    <!--    End  Header   -->
    Merci pour vos aides

    i

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Bonjour,

    Pas d'erreur en console JavaScript ? Est-ce que tu peux utiliser le debugger de ton navigateur pour voir si tu passes bien dans la fonction Show_User ?
    One Web to rule them all

  3. #3
    Candidat au Club
    Homme Profil pro
    autodidacte
    Inscrit en
    Octobre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Bonsoir,

    Pas d'erreur avec debuger, d’ailleurs une alert sur le retour de la function getElementById me donne soit block ou soit none.
    Dernière trouvaille, le problème doit venir de Header, puisque le code marche même placé dans le Footer



    Voila Url de site yaroo.free.fr

    Merci et en attendant ie cherche, je cherche

  4. #4
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Tu as essayé de mettre des breakpoints dans la fonction et de regarder le déroulement du code pas à pas ? C'est plus efficace que des alert() et bouger au hasard le code.
    One Web to rule them all

  5. #5
    Candidat au Club
    Homme Profil pro
    autodidacte
    Inscrit en
    Octobre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Je ne connais pas trop bien le breakpoint mais quand j'ajoute debugger; dans le code, il passe bien dans la fonction et l'objet menu est bien renseigné.
    Ensuite il valide le teste sur block et valide menu.style.display='none.

    Mais ce qui est énervant ce que placé la même code dans le footer, elle fonction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var menu = document.getElementById("Drop_Login");    menu = div#Drop_Login.U_hidden_menu
     
    if(menu.style.display == 'block'){  menu = div#Drop_Login.U_hidden_menu
            menu.style.display = 'none';
        }else {
            menu.style.display = 'block';
        }
    A devenir fou

  6. #6
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Es-tu sûr d'avoir un seul élément avec cet ID dans la page ? Pas de duplicat d'ID ?

    Dans le CSS, pas de règle !important qui viendrait surcharger la règle en inline ?
    One Web to rule them all

  7. #7
    Candidat au Club
    Homme Profil pro
    autodidacte
    Inscrit en
    Octobre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Bonsoir,

    Rien compris mais on ajoutant un heigt:50px à le problème est résolu.

    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    .U_hidden_menu ul
    {
            list-style:none;
    	text-align:left;
    	margin-left:2px;
    	font-size:15px;
    }

    Merci de tes conseilles et qui sait, peut-être à l'occasion d'autre erreurs ?


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

Discussions similaires

  1. Une variable en paramètre de document.getElementById() ne fonctionne pas
    Par serigne dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/07/2015, 09h06
  2. getElementById(objet.id).focus() ne fonctionne pas
    Par CPI_en_mousse dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 19/03/2013, 16h19
  3. Récupération de données getElementById qui fonctionne pas
    Par cuisto44000 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/01/2012, 22h10
  4. getElementById ne fonctionne pas
    Par mokadjo dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 15/01/2008, 12h40
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

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