Bonjour à tous,
J'essaye de contruire mon propre menu à plusieurs niveau.
Il agit en fonction de la class dropdown-toggle
Code jquery : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 ( function( $ ) { $( '.dropdown-toggle' ).click( function( e ) { var _this = $( this ); e.preventDefault(); _this.toggleClass( 'toggle-on' ); _this.find('.fa').toggleClass( 'fa-angle-down fa-angle-up'); _this.parent().next( '.sub-menu' ).toggleClass( 'toggled-on' ); _this.attr( 'aria-expanded', _this.attr( 'aria-expanded' ) === 'false' ? 'true' : 'false' ); } ); })( jQuery );Ceci fonctionne bien, mais il y a deux menu qui se déroule et quand je clique sur le premier et sur le deuxième, le premier ne se ferme pas.
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114 <section class="container e-panel-row"> <nav role="navigation" aria-label="Main navigation"> <ul class="e-justify-content-space-beween bg-black"> <li class="hasChildren"> <div> <a href="#">A propo</a> <a href="#" class="dropdown-toggle" aria-expanded="false"> [12] <i class="fa fa-angle-down"></i> </a> </div> <ul class="sub-menu" role="group"> <li> <div> <a class="link" href="#">Item 1.1</a> </div> </li> <li class="hasChildren"> <div> <a href="#" class="link">Item 1.2</a> <a href="#" class="dropdown-toggle" aria-expanded="false"> [1] <i class="fa fa-angle-down"></i> </a> </div> <ul class="sub-menu" role="group"> <li> <div> <a href="#">Item 1.2.1</a> </div> </li> <li> <div> <a href="#">Item 1.2.2</a> </div> </li> <li> <div> <a href="#">Item 1.2.3</a> </div> </li> </ul> </li> <li> <div> <a href="#">Item 333333</a> </div> </li> </ul> </li> <li> <div> <a href="#">Team</a> </div> </li> <li class="hasChildren"> <div> <a href="#" class="link">Contact</a> <a href="#" class="dropdown-toggle" aria-expanded="false"> [1] <i class="fa fa-angle-down"></i> </a> </div> <ul class="sub-menu" role="group"> <li> <div> <a href="#">Adresse</a> </div> </li> <li> <div> <a href="#">Téléphone Téléphone Téléphone Téléphone</a> </div> </li> <li> <div> <a href="#">e-mail</a> </div> </li> </ul> </li> <li> <div> <a href="#">Nos cours</a> </div> </li> <li> <div> <a href="#">Menu 3</a> </div> </li> <li> <div> <a href="#">Encore un beau menu 4</a> </div> </li> <li> <div> <a href="#">Contact</a> </div> </li> </ul> </nav> </section>
J'aimerais savoir comment je pourrais modifier mon code jquery pour qu'il ferme tous les menus ouvertes sauf celui qui a été cliqué.
Dans mon cas, j'en ai deux (ou trois car j'ai un sous-sous menu)
D'ailleur, petit complication: quand je clique sur un sous-sous menu, il ne devrait pas fermé son menu parent.
Et s'il y a trois sous-menu, tous les menus parent à se dernier doivent rester ouvert.
Il faudrait donc que tous les autres menus du premier du premier niveaux se ferment (et leurs sous-menu enfant).
Voyez-vous?
merciiii et bonne soirée
Partager