Bonjour à tous,
J'ai trouvé un tutoriel sur le WEB pour une menu en accordéon avec JQUERY et CSS.
Lorsque le sous-menu est ouvert et que je clique sur un lien de ce sous-menu, la page se charge et mon menu se referme au lieu de rester ouvert tel qu'indiqué dans le tutoriel.
Voici du CODE afin de vous aider à comprendre.
Le code avec jQuery
Code javascript : 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
34
35
36 <script type="text/javascript" src="../js/jquery-1.10.1.js"></script> <script type="text/javascript"> $(document).ready( function () { // On cache les sous-menus // sauf celui qui porte la classe "open_at_load" : $(".navigation ul.subMenu:not('.open_at_load')").hide(); // On sélectionne tous les items de liste portant la classe "toggleSubMenu" // et on remplace l'élément span qu'ils contiennent par un lien : $(".navigation li.toggleSubMenu span").each( function () { // On stocke le contenu du span : var TexteSpan = $(this).text(); $(this).replaceWith('<a href="" title="Afficher le sous-menu">' + TexteSpan + '<\/a>') ; } ) ; // On modifie l'évènement "click" sur les liens dans les items de liste // qui portent la classe "toggleSubMenu" : $(".navigation li.toggleSubMenu > a").click( function () { // Si le sous-menu était déjà ouvert, on le referme : if ($(this).next("ul.subMenu:visible").length != 0) { $(this).next("ul.subMenu").slideUp("normal", function () { $(this).parent().removeClass("open") } ); } // Si le sous-menu est caché, on ferme les autres et on l'affiche : else { $(".navigation ul.subMenu").slideUp("normal", function () { $(this).parent().removeClass("open") }); $(this).next("ul.subMenu").slideDown("normal", function () { $(this).parent().addClass("open") } ); } // On empêche le navigateur de suivre le lien : return false; }); } ) ; </script>
Le menu en PHP qui est appelé à l'aide d'un INCLUDE dans les pages.
Code html : 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 <ul class="navigation"> <li><a href="index.php" title="Qui sommes-nous ?">Qui sommes-nous ?</a></li> <li class="toggleSubMenu"><span>Notre équipe</span> <ul class="subMenu"> <?php if ($_GET['id_page'] == 1) { ?> <li class="open_at_load"> <?php } else { ?> <li> <?php } ?> <a href="page.php?id_page=1" title="Nos producteurs">Nos producteurs</a></li> <?php if ($_GET['id_page'] == 2) { ?> <li class="open_at_load"> <?php } else { ?> <li> <?php } ?> <a href="page.php?id_page=2" title="Nos directeurs">Nos réalisateurs</a></li> <?php if ($_GET['id_page'] == 3) { ?> <li class="open_at_load"> <?php } else { ?> <li> <?php } ?> <a href="page.php?id_page=3" title="Nos recherchistes">Nos recherchistes</a></li> </ul> </li> <li><a href="equipements.php" title="Nos équipements">Nos équipements</a></li> <li><a href="forfaits.php" title="Forfaits">Forfaits</a></li> <li><a href="contact.php" title="Nous joindre">Nous joindre</a></li> <li><a href="#" title="Espace Membres">Espace Membres</a></li> </ul>
Voici le menu une fois rendu sur une des pages du sous-menu, ici j'ai choisi la page nos recherchistes, on voit que la ligne de code recoit la classe open_at_load, mais que malgré tout le menu se referme
Code html : 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 <ul class="navigation"> <li><a href="index.php" title="Qui sommes-nous ?">Qui sommes-nous ?</a></li> <li class="toggleSubMenu"><span>Notre équipe</span> <ul class="subMenu"> <li> <a href="page.php?id_page=1" title="Nos producteurs">Nos producteurs</a></li> <li> <a href="page.php?id_page=2" title="Nos directeurs">Nos réalisateurs</a></li> <li class="open_at_load"> <a href="page.php?id_page=3" title="Nos recherchistes">Nos recherchistes</a></li> </ul> </li> <li><a href="equipements.php" title="Nos équipements">Nos équipements</a></li> <li><a href="forfaits.php" title="Forfaits">Forfaits</a></li> <li><a href="contact.php" title="Nous joindre">Nous joindre</a></li> <li><a href="#" title="Espace Membres">Espace Membres</a></li> </ul>
J'ai mis le code en GRAS et en ROUGE pour vous aider.
Le lien ou vous pouvez voir le tout est le suivant : www.productionsfx.com/fr/
Merci de votre aide
Sylvain
Partager