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

jQuery Discussion :

menu deroulant et enroulant


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 336
    Par défaut menu deroulant et enroulant
    bonjours à tous,

    Je souhaiterais faire un menu en JQuery, lorsque je clique sur un sous-menu, sa me déroule le sous-sous-menu correspondant. c'est réaliser grace à ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $('#deroule_$i').click(function()
    	{
    		if ($('#sous_menu_$i').is(':visible'))
    		{							   $('#sous_menu_$i').slideUp('slow');		
    		}
    		else
    		{
    									$('#sous_menu_$i').slideDown('slow');
    		}
    		// $('#sous_menu_$i').filter(':visible').slideUp('slow');
    		// $('#sous_menu_$i').filter(':hidden').slideDown('slow');
     
    							});
    Mais cela ne fait pas exactement ce que je veux. En effet, lorsque je clique sur un sous-menu, il me déroule son sous-sous-menu et quand je reclique dessus il se referme. Mais si je ne reclique pas dessus et que j'ouvre un autre sous-menu, le premier ouvert ne se referme pas.

    mon menu se construit de cette manière comme sa vous verrez comment sa se construit :

    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
     
    <div id="menu">
     
    <span id='menu_$j' class='gras'>".$ligne."</span><br/>
     
    <span id='deroule_$l' class='gras sous_menu'>".$ligne."</span><br/>
     
    <div id='sous_menu_$l' class='style gras sous_sous_menu'>
     
    <ul class='non_puce'>
     
    "<li>".$this->controller->versPage($pointeVers[$i],$ligne)."</li>"
    ........
    </ul>
     
    </div>
     
    <span id='menu_$j' class='gras'>".$ligne."</span><br/>
     
    <span id='deroule_$l' class='gras sous_menu'>".$ligne."</span><br/>
     
    <div id='sous_menu_$l' class='style gras sous_sous_menu'>
     
    <ul class='non_puce'>
     
    "<li>".$this->controller->versPage($pointeVers[$i],$ligne)."</li>"
    ........
    </ul>
     
    </div>
     .......
     .......
    </div>

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut


    Il n'y aurait pas un problème dans le nommage ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre très actif
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 336
    Par défaut
    alors non il n'y a pas d'erreur le code JQuery que j ai mit est écrit avec PHP donc ici on voit les $i etc.

    Sinon j ai trouvé un bricolage maison pour avoir ce que je veux voici le code sa peut servir :

    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
     
    $('#deroule_$i').click(function()
    {
    	//si le sous_menu_$i est visible				
    	if ($('#sous_menu_$i').is(':visible'))
    	{
                    //on le remonte
    		$('#sous_menu_$i').slideUp('slow');		
    	}
            //sinon
    	else
           {
                    //on remonte tout les sous_menu
    		$('.sous_menu').slideUp('slow');
                    //on abaisse celui qu'on vient juste de cliquer
    		$('#sous_menu_$i').slideDown('slow');
    	}
     
    	// $('#sous_menu_$i').filter(':visible').slideUp('slow');
            // $('#sous_menu_$i').filter(':hidden').slideDown('slow');
     
    });

  4. #4
    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 660
    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 660
    Billets dans le blog
    1
    Par défaut
    et là le $i est interprété entre simples quotes ???,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($('#sous_menu_$i').is(':visible'))
    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 !

  5. #5
    Membre très actif
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 336
    Par défaut
    oui le $i est bien interprété lorsqu'il est entre simple quote

    EDIT : le code PHP n'a pas sa place ici mais je met le code complet de la procédure

    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
     
    for($i=0;$i<= $site->getMenu()->getNbTotal();$i++)
    {					
    	echo "
     
    	$('#deroule_$i').click(function()
    		{
     
    			 if ($('#sous_menu_$i').is(':visible'))
    			 {
    				$('#sous_menu_$i').slideUp('slow');		
     
    			}
    			 else
    			{
    				$('.sous_sous_menu').slideUp('slow');
    				$('#sous_menu_$i').slideDown('slow');
     
    			}
     
    		});	";				
    	}

  6. #6
    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 660
    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 660
    Billets dans le blog
    1
    Par défaut
    ha oui vu comme ça ...

    après c'est une question de gouts, mais je trouve les syntaxes suivantes plus claires :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for($i=0;$i<= $site->getMenu()->getNbTotal();$i++)
    {					
    	echo '
     
    	$("#deroule_'.$i.'").click(function()
    		{
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for($i=0;$i<= $site->getMenu()->getNbTotal();$i++)
    {					
    	echo '$("#deroule_"',$i,'").click(function()
    		{
    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 !

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

Discussions similaires

  1. Probleme menu deroulant et frames
    Par rippoz dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/03/2005, 11h08
  2. [CSS-Javascript] Menu déroulant
    Par JeromeR dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 21/10/2004, 17h07
  3. [VBA-E] Barre d'outils et menu déroulants
    Par Tcmat dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/08/2004, 21h51
  4. [LG]Menu déroulant sous Pascal
    Par Apprenti Sorcier dans le forum Langage
    Réponses: 8
    Dernier message: 26/03/2004, 13h29

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