Bonjour,

j'utilise jQuery pour créer quelques listes dans mon application que j'agrémente avec des CSS par la suite.

Cependant j'ai un problème.

Voici une de mes listes : la liste des mois d'une année. Pour chaque mois, j'affiche un résultat à côté du mois (une image).
J'ai également un tableau "correspondance" qui me retourne le mois en toute lettre quand je récupère le n° du mois.

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
 
$.ajax({
	url: 'mapage.php?annee='+annee,
	success: function(html) {
 
		myData = JSON.parse(html, function (key, value) {
 
		if(typeof value === 'string')
		{
			var splitdata = value.split('-');
			// Si on a aucun résultat pour ce mois
			if (splitdata[0] == 0)
				$("#tablemois").append('<tr><td id="mois-'+key+'" class="mois">'+correspondance[key]+'</td></tr>');
			// Si on a des résultats
			else
			{
			// Si on a des résultats non terminés
				if (splitdata[1] != 0
					$("#tablemois").append('<tr><td id="mois-'+key+'" class="mois"><img src="../Images/img1.png" /> '+correspondance[key]+'</td></tr>');
				else
					$("#tablemois").append('<tr><td id="mois-'+key+'" class="mois"><img src="img2.png" /> '+correspondance[key]+'</td></tr>');
			}
	        }
		if (key == mois)
			$("#mois-"+key).addClass('moisencours').removeClass('mois');	
});
Et c'est donc en dernière partie du code, que si ma clé est égale au mois actuel (par exemple 12 en ce moment), alors j'ajouterai une classe.

Dans ma liste, je peux cliquer sur chaque mois pour afficher les résultats de chacun d'eux. Sauf qu'en mettant mon dernier "if" pour ajouter la classe, il m'est au final impossible de recliquer sur le mois actuel.

Par exemple, nous sommes en décembre. Au premier chargement de la page, le mois de décembre va se mettre en surbrillance. Quand je cliquerai sur un autre mois, c'est ce nouveau qui se mettra en surbrillance et plus le mois de Décembre. Sauf que je ne pourrai plus recliquer sur le mois de décembre. Il gardera toujours en mémoire le fait qu'il a eu cette classe, même si je l'enlève (avec un removeClass). Voir le code ci-dessous :

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
 
$(".mois").click(function() {
 
	// On enlève la classe 'mois en cours' au mois actuel
	$(".moisencours").addClass('mois');
	$(".moisencours").removeClass('moisencours');
	// On récupère le mois sélectionné
	var selection = $(this).attr('id'); // nom-n°
	var spliter = selection.split('-'); // On sépare
	var mois = spliter[1]; // On récupère le n° du mois
 
	$("#mois-"+mois).addClass('moisencours');
	$("#mois-"+mois).removeClass('mois');
 
});
Et j'ai ce problème pour deux listes différentes. Donc si j'en règle un, je devrai réussir à régler l'autre.
Voila pourquoi je vous demande de l'aide !