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