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) :

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
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 ...

Une idée ?