Bonjour,
Je suis en train de faire un menu accordéon a plusieurs niveaux dont le premier niveaux est connu et lorsque l'on 'click' sur le premier niveau, il remplis le deuxième advenant le cas ou il n'a pas déja été remplis préalablement.
Mon code pour l'accordéon marche parfaitement, ma parti ou il ajoute marche aussi bien!
Le trouble est qu'il n'ouvre pas la section ajouter, et si je 'click' pour la fermer, il ne le fait pas!
J'ai essayer de remplacer delegate par live mais sans resultat!
Voici mon code, dite moi si vous voyez mon erreur !
Voici le html :
Code : 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 $(document).ready(function(e) { $('ul#group').delegate('a', 'click', function(event) { var geoId = $(this).parent().find('input:checkbox:first').val(), c = $(this).parent().find('ul').length, t = $(this), add = ''; if(c == 0) { $.getJSON( "plugins/JSONcache/"+geoId+".html", function( data ) { $.map( data.geonames, function( item ) { add += '<li><a href="#" onclick="return false;"><input type="checkbox" value="'+item.geonameId+'" />'+item.toponymName+'</a></li>'; }) $(t).after('<ul>'+add+'</ul>'); }); } if ($(event.target).next().is(':visible')) { $(event.target).next().find('ul').slideUp(250, function() { $(event.target).next().slideUp(250); }); } else { $(event.target).parent().siblings().find("ul").slideUp(250); $(event.target).next().slideDown(250); } }); });
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <ul id="group"> <li> <a href="#" onclick="return false;"><input type="checkbox" value="6255146" /> Africa<div style="float:right; padding-right:10px;">[+]</div></a> <!-- l'ajout ce fait ici --> </li> <li> ... </li> </ul>
Merci d'avance!
Partager