Salut !
Mon objectif est de créer une liste d'éléments avec cette condition : si la liste a plus de 20 éléments on cache les 21 à n éléments qu'on peut afficher en cliquant sur + puis les recacher.
Jusque là pas de soucis, c'est ce genre de truc que je veux obtenir :
http://www.webdesignerwall.com/demo/...ide-panel.html
Seulement le code de ma liste ne contient pas de div par défaut et je veux insérer un élément div à la volée si ma liste contient plus de 20 éléments.
Mon problème est que je n'arrive pas à insérer l'ouverture du div au début de ma liste et la fermeture à la fin.
Voici mon code (c'est au moment de l'insertion des divs que j'ai un soucis) :
Le 1er <div> est bien inséré mais le code génère aussi la balise de fermeture (que je ne veux obtenir à la fin de ma liste) juste après le <div> d'ouverture ...
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 $(document).ready(function(){ var i = 0; // Nombre de d'éléments total var n = 0; // Nombre de ul $("ul").each(function(){ n= 0; i=i +1; //alert(i); $(this).find("li").each(function(){ n=n +1; if (n>=20) { // Si on a une liste >= de 20 éléments if (n == 20) // Pour le premier élément on lui attribut un div { $(this).after('<div class="wrap-hidden">'); $(this).("li:last").("</div>"); } $(this).nextAll("li").addClass("hidden"); $(this).nextAll().hide(); return false;// On cache les éléments de 21 à n /* On ajoute le bouton plus que l'on ne cache pas */ //alert("arg"); } }); }); alert("Nombre de d'éléments total : "+n); alert("Nombre de ul : "+i); $(".btn-slide").click(function(){ $(".hidden").slideToggle("slow"); return false; }); }); // fin
Une idée ?
Partager