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 :

Menu sous forme areborescente


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 97
    Points : 53
    Points
    53
    Par défaut Menu sous forme areborescente
    bonjour,
    je developpe une application web en jsp. Je voudrais ajouter un menu a plusieurs niveaux sous forme arborescente, de telle sorte que je puisse faire apparaitre et disparaitre les sus menus. J'ai pensé à le faire en javascript.
    voila mon menu:
    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
     
    <div id="menu">
      <ul>
         <li><a href="acceuil.jsp">Home</a></li
         ><ul>
             <li onclick="ElementStatus('Results','1','Results')" Style="Cursor:pointer;" >Results</li
             ><ul id="Results1" >
    	      <li><a href="" >Results 1</a></li
    	      ><li onclick="ElementStatus('Results','2','Results 2')" ><a href="" >Results 2</a></li
    	      ><ul id="Results2" >
    		   <li><a href="" >Results  2_1</a></li
    		   ><li><a href="" >Results 2_2</a></li
    		   ><li onclick="ElementStatus('Results','3','Results 3')" ><a href="" >Results 3</a></li
    		   ><ul id="Results3">
                            <li><a href="" >Results 3_1</a></li
    		        ><li><a href="" >Results 3_2</a></li
    			><li><a href="" >Results 3_3</a></li
    		   ></ul	
    	       ></ul
                 ></ul
    	     ><li><a href="<%=targetTests%>" >Tests</a></li
    	     ><li><a href="<%=targetProtocols %>" >Protocols</a></li
    	></ul
         ></ul>
    </div>
    et voici ma fonction ElementStatus:
    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
     
    function ElementStatus(name, number, title){
            var divID = name + number;
    	if( document.getElementbyId && document.getElmentById( divID ) ){
    		Pdiv = document.getElementById( divID );
    		PcH = true;
    	}
    	else if( document.all && document.all[ divID ] ){
    		Pdiv = document.all[ divID ];
    		PcH = true;
    	}
    	else if( document.layers && document.layers[ divID ] ){
    		Pdiv = document.layers[ divID ];
    		PcH = true;
    	}
    	else{
    		PcH = false;
    	}
    	if( PcH ){
    		if( Pdiv.className == 'cachediv' ){
    			Pdiv.className = '';
    		}
    		else{
    			Pdiv.className = 'cachediv';
    		}
    	}
    }
    mais ça ne marche, est-ce que j'ai oublié quelsue chose?!!

  2. #2
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Salut, qu'est-ce que tu veux dire par ça ne marche pas ? Messages d'erreur ? Comportement incohérent (dans ce cas, que se passe-t-il par rapport au comportement attendu) ? ...

    Sinon, remplace tes
    par
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 97
    Points : 53
    Points
    53
    Par défaut
    je viens de modifier les balises li, mais ça marche toujours pas = affiche le menu, mais quand je clique sur les elements il se passe rien !!!

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 11
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    A la sortie de ta fonction le booléen a quelle valeur ?

    D'autre part, l'erreur pourrait aussi venir d'une erreur dans la css, qu'as tu dans "cachediv" ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 97
    Points : 53
    Points
    53
    Par défaut
    dans le css j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    .cachediv{
    	overflow:hidden;
    	height: 1px;
    	margin-top: -1px;
    	position: absolute;
    }

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 11
    Points : 14
    Points
    14
    Par défaut
    bon j'ai vite testé ton code, il marche sous IE6 qui est très permissif, et non sous firefox.

    En testant la valeur du booléen PcH, il passe à true sur le onclick de "Results" (donc on rentre bien dans les if) alors que dans firefox, PcH est à false.

    Je pense donc que ton problème vient de tes conditions et de leur déclaration.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 97
    Points : 53
    Points
    53
    Par défaut
    et comement je peux les modifier pour que ça marche sur firefox aussi!

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 11
    Points : 14
    Points
    14
    Par défaut
    ben déjà en modifiant le premier "if" et en corrigeant ta faute de frappe sur le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById( divID )
    et ensuite si cela te convient tu peux faire ça :

    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
     
    ..................
        if( document.getElementById( divID ) ){ 
     
            Pdiv = document.getElementById( divID );
            PcH = true;
    //        alert ("ById");
        }
        else if( document.all[ divID ] ){ 
            Pdiv = document.all[ divID ];
            PcH = true;
     //       alert('all');
        }
        else if(  document.layers[ divID ] ){
            Pdiv = document.layers[ divID ];
            PcH = true;
      //      alert('layers');
        }
        else{
            PcH = false;
        }
    ......................
    Ton code normalement devrait fonctionner, si cela te convient. Il ne reste plus qu'à virer les alert. D'autre part je ne comprends pas la nécessité de ton second else if... mais bon ça c'est ta sauce

    En espérant t'avoir un peu aidé.@+

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 97
    Points : 53
    Points
    53
    Par défaut
    ouaip ton code me convient tès bien, problème résolu!!! merci beaucoup batham

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

Discussions similaires

  1. Problème de menu sous forms 10g
    Par ilboudfr dans le forum Forms
    Réponses: 2
    Dernier message: 07/05/2010, 13h08
  2. Réponses: 10
    Dernier message: 20/11/2008, 15h29
  3. erreur sur securité menu sous forms 10g
    Par ouatmad dans le forum Forms
    Réponses: 1
    Dernier message: 22/03/2008, 12h38
  4. Action de menu sous forme de liste
    Par frog43 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/12/2007, 13h33

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