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 :

onclick liste imbriquées


Sujet :

JavaScript

  1. #1
    Membre émérite Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Par défaut onclick liste imbriquées
    Bonjour,

    J'ai un menu qui a des sous menus.

    J'aimerai que la rubrique cliquée soit surlignée. Ma classe selected me sert à ça. Mais le problème est que si je clique sur un des sous lien du "lien 2", toute la rubrique du lien 2 reste surlignée alors que je voudrai que juste le sous lien le soit.

    Pourriez vous m'aider ?

    j'ai un code qui ressemble à ç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
    23
    24
     
    <ul>
    	<li>titre
    		<ul>
    			<li id="mg1" onclick="javascript:initMenuGauche();this.className='selected'"><a href="#" >lien 1</a></li>
     
     
    			<li id="mg2" onclick="javascript:initMenuGauche();this.className='selected'">lien 2</a>
    			<div id="sMenu1">
    				<ul class="smenuGauche">
    					<li id="mg3" onclick="javascript:initMenuGauche();this.className='selected'"><a href="#">sous lien 2</a></li>
     
    					<li id="mg4" onclick="javascript:initMenuGauche();this.className='selected'"><a href="#">sous lien 2-1</a></li>
    					<li id="mg5" onclick="javascript:initMenuGauche();this.className='selected'"><a href="#">sous lien 2-2</a></li>
    					<li id="mg6" onclick="javascript:initMenuGauche();this.className='selected'"><a href="#">sous lien 2-3</a></li>
    					<li id="mg7" onclick="javascript:initMenuGauche();this.className='selected'"><a href="#">sous lien 2-4</a></li>
    				</ul>
    			</div>
     
    			</li>
    			<li id="mg8" onclick="javascript:initMenuGauche();this.className='selected'"><a href="#" >lien 3</a></li>
    		</ul>
    	</li>
    </ul>
    et la fonction initMenuGauche est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function initMenuGauche() {
        // Initialisation des menus de gauche et de droite 
        for ( i=1 ; i<9 ; i++) {
    		if (document.getElementById('mg'+i)) {
            	document.getElementById('mg'+i).className = '';
    		}
        }
        return 0;
    }
    merci

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    houla houla , des div a l'intérieur de li , puis des li ?
    va faire un tour par ici :

    http://css.developpez.com/galerie/

  3. #3
    Membre émérite Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Par défaut
    On peut trés bien mettre des li dans des div et inversement et etant valide XHTML

    le div me sert a cacher le sous menu en javascript dans certains cas.

    Mais pour ce probleme, j'ai beau chercher, je vois pas.

  4. #4
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    ne mets pas le this.className sur les balises <li> mais sur les balises <a>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    <li id="mg2" onclick="initMenuGauche();"><a href="#" onclick="this.className='selected'">lien 2</a>
    			<div id="sMenu1">
    				<ul class="smenuGauche">
    					<li id="mg3" onclick="initMenuGauche();"><a href="#" onclick="this.className='selected'">sous lien 2-0</a></li>
    					<li id="mg4" onclick="initMenuGauche();"><a href="#" onclick="this.className='selected'">sous lien 2-1</a></li>
    					<li id="mg5" onclick="initMenuGauche();"><a href="#" onclick="this.className='selected'">sous lien 2-2</a></li>
    					<li id="mg6" onclick="initMenuGauche();"><a href="#" onclick="this.className='selected'">sous lien 2-3</a></li>
    					<li id="mg7" onclick="initMenuGauche();"><a href="#" onclick="this.className='selected'">sous lien 2-4</a></li>
    				</ul>
    			</div>
     </li>
    et supprime le terme javascript après tes événements onclick il est inutile.

  5. #5
    Membre émérite Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Par défaut
    Effectivement c'est une solution. J'ai fait ce que tu m'as dit mais en laissant l'evenement onclick sur les li car c'est vraiment le <li> que je veux decorer car il est bien plus large que la balise <a>.

    En tout cas c'est le moyen pour resoudre ce probleme.

    merci

  6. #6
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    c'est vraiment le <li> que je veux decorer car il est bien plus large que la balise <a>.
    Dans ce cas tu peux utiliser cette méthode :

    La balise <li> contient ta balise <div> tu comprends bien que si tu mets un fond sur ta balise <li>, le <div> aura le même fond sauf si le div n'a pas de fond transparent (style par défaut)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <li id="mg2" onclick="initMenuGauche();this.className='selected'"><a href="#">lien 2</a>
    			<div id="sMenu1" style="background-color: #FFFFFF">
    				<ul class="smenuGauche">
    					<li id="mg3" onclick="initMenuGauche();this.className='selected'"><a href="#">sous lien 2-0</a></li>
    					<li id="mg4" onclick="initMenuGauche();this.className='selected'"><a href="#">sous lien 2-1</a></li>
    					<li id="mg5" onclick="initMenuGauche();this.className='selected'"><a href="#">sous lien 2-2</a></li>
    					<li id="mg6" onclick="initMenuGauche();this.className='selected'"><a href="#">sous lien 2-3</a></li>
    					<li id="mg7" onclick="initMenuGauche();this.className='selected'"><a href="#">sous lien 2-4</a></li>
    				</ul>
    			</div>
     </li>
    dans cet exemple, le div a un fond blanc (tu peux mettre une autre couleur ou une image). Clique sur le lien parent, il aura l'aspect selected mais pas les <li> enfants car le <div> conteneur aura un fond blanc.

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

Discussions similaires

  1. [Taglib / JSP / Javascript] Liste imbriquées
    Par Resyek dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 12/05/2006, 21h26
  2. [VBA-E]Listes Imbriquées : comment optimiser?
    Par hey_chuck dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/03/2006, 21h50
  3. Présentation dans des listes imbriquées
    Par Ghusse dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 29/09/2005, 09h35
  4. [XHTML] Listes imbriquées valides ?
    Par Amon dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 23/09/2005, 23h05
  5. [CSS] listes imbriquées et conformité W3C
    Par rapathonyk dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 25/07/2005, 09h40

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