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 :

comment appeler le noeud enfant pour un menu dynamique


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Par défaut comment appeler le noeud enfant pour un menu dynamique
    Bonjour ,
    Après avoir essayé plusieurs menus , je me suis dit que le plus simple était d'en créer un perso que je comprendrai.J'ai commencé par de petits tests.
    Voilà un petit exemple menu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        <ul id="general" onMouseover="Afficher(this);"> Présentation 
      <div id="sousMenu1" style="visibility:visible;display:block">
          <li> histoire  </li>
          <li> cours  </li>
          </div>
      </ul>
    Pour la fonction afficher comment passer du noeud parent au noeud enfant.
    J'ai essayé currentNode.childNode mais j'obtiens un message objet undefined.
    Une fois que j'aurais le noeud enfant je pourrai modifier le style.visibility


    Merci de votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    currentNode.childNodes[0]
    retourne le premier Noeud Enfant, masi mefies toi ce n'est peut être pas celui que tu crois en focntion du navigateur (cf nodeCleaner)

    sinon avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    currentNode.getElementsByTagName('li')[0]
    retournera a coup sur le premier li

    Et accesoirement ta structure avec le div dans le ul c'est pas bon
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Par défaut
    Merci de la réponse,

    Code :
    currentNode.getElementsByTagName('li')[0]retournera a coup sur le premier li
    Je crois que c'est ce qui me fallait.

    Et accesoirement ta structure avec le div dans le ul c'est pas bon
    T'as tout à fait raison,je fais les modifs et j'aurai surement d'autres problèmes à te soumettre.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Par défaut
    Bonjour ,

    Je continue mon exploration des menu dynamiques.

    Voilà le problème que le rencontre :

    Quand je fais un mouseOver sur un menu il m'affiche tous : le menu et les sous menu alors que je ne veux que le menu .
    Je pensais donc sur un menu , rechercher tous les noeuds enfants et ne pas afficher les ul et les li des noeuds enfants.

    Voilà donc ce que je fais :
    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
     
       var enfant = currentNode.childNodes  ;
     
     
                        if (enfant.length==0)
                            {
                               alert ("Le menu n'a pas d'enfants") ; 
                               // return false ;
                                }
                                else {
                                 // On va chercher si notre noeud enfant contient 
                                 // des ul ou des li
     
                                 for (var i=0;i<enfant.length ; i++)
                                     {
     
                        enfant[i].getElementsByTagName('ul').style['visibility'] ='hidden' ;
     
                         enfant[i].getElementsByTagName('li').style['visibility'] = 'hidden' ;
     
                                      }
    J'obtiens le message d'erreur suivant :

    enfant[i].getElementsByTagName is not a function
    J'ai surement fait une de raisonnement quelque part, pouvez vous me dire où.

    Merci d'avance

Discussions similaires

  1. Comment appeler une image dans un struts menu
    Par newmar dans le forum Struts 1
    Réponses: 3
    Dernier message: 26/08/2010, 07h53
  2. un programme pour le menu dynamique
    Par barchoui dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 20/02/2009, 14h41
  3. Réponses: 5
    Dernier message: 30/09/2007, 18h50
  4. [XSL] aide pour lire un id de noeud enfant.
    Par stebar dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 01/07/2004, 13h38

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