Bonjour.
Hier j'avais posté un message pour pouvoir cocher un checkbox dans un tableau lors de l'appuie sur une ligne http://www.developpez.net/forums/d15...gne-d-tableau/, ce problème a été résolu mais je souhaiterai maintenant enlever les checkboxs de mon tableau pour un résultat plus esthétique tout en ayant la même fonctionnalité.
Voila donc mon problème :
Plusieurs lignes de mon tableau appartiennent à la même classe, je voudrais que lorsque l'on clique sur une ligne, la classe "selected" soit ajoutée à toutes les lignes ayant la même classe que la ligne cliquée.
Je vous montre l'exemple qui marche avec les checkboxs : http://jsfiddle.net/Flavors/nuzo8gn2/6/ (je voudrais remplacer l'état "checked" des checkboxs par une classe "selected" pour ne pas avoir les checkboxs)
Le code :
Quand je clique sur une ligne qui n'a pas "selected", elle se selectionne bien mais quand je clique sur une ligne qui a déjà "selected", elle ne se deselectionne pas... Pourtant j'ai bien vérifier je rentre bien dans la condition
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 $('tbody').on( 'click', 'tr', function () //Lors d'un clic sur une ligne du tableau mais pas sur l'en-tête { $classe = $(this).attr('class')//On recupére le nom de la classe de la ligne sur laquelle on a cliqué (plusieur lignes peuvent avoir la même classe elles sont rangées dans l'ordre croissant des "ligne_tableau_x") la classe des lignes a été mise en place pour la selection avec rowspan $classe= "." + $classe;//On concaténe le nom de la classe récupéré pour le formaté "ligne_tableau_x" -> ".ligne_tableau_x" alert($classe); if($(this).hasClass("selected")) { alert("selected"); $($classe).toggleClass("selected"); $($classe).css("background-color","transparent");//On change la couleur de la ligne (toute la hauteur du rowspan) } else//Si la case n'est pas cochée { alert("not selected"); $($classe).toggleClass("selected"); $($classe).css("background-color","#e9f8ff");//On change la couleur de la ligne (toute la hauteur du rowspan) } alert($classe); });
EXEMPLE : http://jsfiddle.net/Flavors/nuzo8gn2/8/
Je ne comprend pas pour moi ce code est valable? Je test si la ligne possède la classe "selected". et pour chaque élément ayant la même classe que la ligne, j'ajoute la classe "selected" ou je l’enlève selon la condition.
Mais ça ne fonctionne pas pour deselectionner...
Si quelqu'un a une idée sur le problème je suis preneurs!
Merci.
Partager