Problème menu accordéon avec jQuery

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème menu accordéon avec jQuery

Re: Problème menu accordéon avec jQuery

par djtec » 08 oct. 2010, 20:39

C'est tout à fait ça merci Cyrano je vais prendre leur code.

Bonne soirée ++

Re: Problème menu accordéon avec jQuery

par Cyrano » 08 oct. 2010, 20:31

Re: Problème menu accordéon avec jQuery

par djtec » 08 oct. 2010, 20:25

C'est du code maison.

En faites j'aimerais juste qu'un sous-menu s'ouvre quand je clique et que ceux ouvert ce referme avant d'ouvrir l'autre.

Re: Problème menu accordéon avec jQuery

par Cyrano » 08 oct. 2010, 19:49

C'est du code maison ou un plugin téléchargé ?

Re: Problème menu accordéon avec jQuery

par djtec » 08 oct. 2010, 19:48

Même avec le not ça fonctionne toujours pas.

Le problème reste identique.

Re: Problème menu accordéon avec jQuery

par Cyrano » 08 oct. 2010, 17:12

Je dis ça à l'arrache, mais j'explorerais le fait que dans ton else, tu sélectionnes tous les ul, du sous-menu. Essaye avec « not »
    $('.sidebar .menu ul ul').hide();
    $('.sidebar .menu ul li.active ul').show();
    $('.sidebar .menu ul li span').css({'cursor' : 'pointer'});
    $('.sidebar .menu ul li').click(function () 
    {
        if($(this).find("ul:visible").length !== 0) 
        {
            $(this).find("ul").slideUp(150);
        }
        else
        {
            $(".sidebar .menu ul li ul").slideUp(150);
            $(this).find("ul:not(:visible)").slideDown(200); // On ne sélection que si le UL n'est pas visible
        }
        return false;
    });
Sans garantie, j'ai pas testé.

Problème menu accordéon avec jQuery

par djtec » 07 oct. 2010, 22:08

Bonsoir,

Voilà je voudrais faire un menu accordéon mais il veut pas fonctionner lol.

Le principe c'est qu'il ferme les éléments ouvert pour ouvrir celui sur le quel on a cliqué.

Mais voilà moi le premier lien n'as pas de sous menu donc en faites c'est ça qui fait tout bugger chez moi car quand je clique pour faire apparaitre le sous-menu il s'ouvre mais il se referme direct. Par contre quand je fais en sorte que un sous menu soit ouvert au départ là magie ça fonctionne. Donc c'est que c'est mon premier lien qui fou le bordel car y a pas de sous menu.

Voici mon code html:
			<ul>
				<li class="active">
					<span><a href="">Accueil</a></span>
				</li>
			
				<li >
					<span>News</span>
					
					<ul>
						<li >
							<a href="">Voir toute les news</a>
						</li>
						<li >
							<a href="">Créer une news</a>
						</li>
						<li >
							<a href="">Gérer les catégories</a>
						</li>
						<li >
							<a href="">Gérer les commentaires</a>
						</li>
					</ul>
				</li>
				<li >
					<span>News</span>
					
					<ul>
						<li >
							<a href="">Voir toute les news</a>
						</li>
						<li >
							<a href="">Créer une news</a>
						</li>
						<li >
							<a href="">Gérer les catégories</a>
						</li>
						<li >
							<a href="">Gérer les commentaires</a>
						</li>
					</ul>
				</li>
</ul>
Et voici mon js:
	$('.sidebar .menu ul ul').hide();
	$('.sidebar .menu ul li.active ul').show();
	
	$('.sidebar .menu ul li span').css({'cursor' : 'pointer'});
	
	$('.sidebar .menu ul li').click(function () {
		if($(this).find("ul:visible").length != 0) { 
            $(this).find("ul").slideUp(150); 
        } else { 
            $(".sidebar .menu ul li ul").slideUp(150); 
            $(this).find("ul").slideDown(200); 
       }
       
       return false;
	});
Moi ça fait deux heures que je recherche et je trouve pas la solution donc je me remet à vos connaissance.

Merci d'avance...