Bonjour à tous,
J'ai besoin de vos lumières pour comprendre un problème.
J'ai adapter un menu acordéon avec jQuery.
Mon code js est le suivant :
Code JS : 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 // JavaScript Document $(document).ready( function () { // On cache les sous-menus : //$(".navigation ul.subNavigation").hide(); // sauf celui qui porte la classe "open_at_load" : $("ul.objectName ul.objectDescription:not('.open')").hide(); // et on remplace l'élément span qu'ils contiennent par un lien : /* $(".navigation li.level1 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" : */ $("ul.objectName li.level1 > a").click( function () { // Si le sous-menu était déjà ouvert, on le referme : if ($(this).next("ul.objectName ul.objectDescription:visible").length != 0) { $(this).next("ul.objectName ul.objectDescription").slideUp("normal", function () { $(this).parent().removeClass("open");$(this).parent().addClass("close") }); } // Si le sous-menu est caché, on ferme les autres et on l'affiche : else { $("ul.objectName ul.objectDescription").slideUp("normal", function () { $(this).parent().removeClass("open");$(this).parent().addClass("close") }); $(this).next("ul.objectName ul.objectDescription").slideDown("normal", function () { $(this).parent().removeClass("close");$(this).parent().addClass("open") }); } // On empêche le navigateur de suivre le lien : return false; }); } ) ;
et mon de html / PHP est le suivant:
Ce que je ne comprends pas pourqoi ca fonction quand je commente cette ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <?php echo '<ul class="objectName"><li class="level1">'; echo '<a href="#">tt</a>'; echo '<table><tr><td>hh</td></tr></table>'; echo '<ul class="objectDescription close"><li>'; echo '<div>test</div>'; echo '</li></ul></li></ul>'; ?>
Si je la décommentre, le <ul class="objectDescription close"> ne se développe pas alors qu'il se développe normalement quand la ligne, ci-dessus , est commentée!!!#echo '<table><tr><td>hh</td></tr></table>';
Avez vous une idée pourquoi le table a une infuance?
Ne serait-il pas un problème de DOM?
Merci
Partager