J'utilise Twitter Bootstrap avec les lignes cliquables mises en surbrillance lors du survol (je peux supprimer la fonctionnalité de survol si cela simplifie cette opération). Je veux que la ligne sélectionnée reste en surbrillance jusqu'à ce qu'une autre la ligne est cliquée ou recliquée.
$( document ).ready(function() {
$('#myTable').on('click', 'tbody tr', function(event) {
// console.log("test ");
});
et la table
<table class="table table-bordered table-hover" id="myTable">
<tbody>
<tr>
<tr class='clickable-row'>
J'ai essayé ce code dans le JS mais je n'ai pas fonctionné
$(this).addClass('highlight').siblings().removeClass('highlight');
Tu es assez proche. Cibler la classe .clickable-row
Sur votre événement $("#myTable").on(...)
et utiliser la classe .active
De Bootstrap devrait fonctionner pour vous:
HTML:
<table class="table table-bordered" id="myTable">
<tr class="clickable-row">
<th>Example</th>
</tr>
<tr class="clickable-row">
<th>Example 2</th>
</tr>
</table>
Javascript:
$('#myTable').on('click', '.clickable-row', function(event) {
$(this).addClass('active').siblings().removeClass('active');
});
Et un exemple Bootply
Remarque: Si vous avez laissé .table-hover
Sur votre table, vous devrez utiliser une classe différente de .active
, Telle que .bg-info
(Qui serait un bleu). hightlight )
Pour supprimer une surbrillance de la ligne (cliquez à nouveau), vérifiez si la ligne a la classe et supprimez-la:
$('#myTable').on('click', '.clickable-row', function(event) {
if($(this).hasClass('active')){
$(this).removeClass('active');
} else {
$(this).addClass('active').siblings().removeClass('active');
}
});
Voir la réponse de @ BravoZulu pour des informations originales.
Essayer:
$(".clickable-row").click(function(){
if($(this).hasClass("highlight"))
$(this).removeClass('highlight');
else
$(this).addClass('highlight').siblings().removeClass('highlight');
})
Pour afficher la ligne peinte d’une couleur indiquant qu’elle est sélectionnée, vous pouvez utiliser data-row-style = 'formatterRowUtSelect'
Dans votre code, vous pouvez ajouter cette méthode:
formatterRowUtSelect = function (row, index) {
if (row.fieldOfMyObject == $ ('#fieldOfMyObject'). val ())
return {classes: 'row-selected'};
return {};
}
N'oubliez pas de créer le css pour la ligne sélectionnée:
.row-selected {
background-color: #a9f0ff !important;
font-weight: bold;
}
J'espère que cela vous sert, salutations.
j'ai utilisé ce script sur bootstrap-table.
$('#tb-pegawai').on('change', 'tr' , function (event) {
if($('.selected')){ // } })