Select table row and keep highlighted using Twitter Bootstrap

Select table row and keep highlighted using Twitter Bootstrap

I am using Twitter Bootstrap table with clickable rows that are highlighted when hovered over (I can get rid of the hover feature if it makes this easier). I want the selected row to remain highlighted until another row is clicked or it is reclicked.
$( document ).ready(function() {
$(‘#myTable’).on(‘click’, ‘tbody tr’, function(event) {
// console.log(“test “);
});

and the table

I tried this code in the JS but didn’t work
$(this).addClass(‘highlight’).siblings().removeClass(‘highlight’);

Solutions/Answers:

Solution 1:

You are quite close. Targeting the .clickable-row class on your $("#myTable").on(...) event and using Bootstrap’s .active class should work for you:

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');
});

And a Bootply Example

Note: If you left .table-hover on your table, you’d have to use a different class than .active, such as .bg-info (which would be a blue hightlight)

To remove a highlight from the row (ie click again), check if the row has the class and remove it:

$('#myTable').on('click', '.clickable-row', function(event) {
  if($(this).hasClass('active')){
    $(this).removeClass('active'); 
  } else {
    $(this).addClass('active').siblings().removeClass('active');
  }
});

See @BravoZulu’s answer for original information.

Solution 2:

Try:

$(".clickable-row").click(function(){
    if($(this).hasClass("highlight"))
        $(this).removeClass('highlight');
    else
        $(this).addClass('highlight').siblings().removeClass('highlight');
})

Solution 3:

To show the painted row of a color, indicating that it is selected, you can use data-row-style = 'formatterRowUtSelect'

Inside your code, you can add this method:

formatterRowUtSelect = function (row, index) {
    if (row.fieldOfMyObject == $ ('#fieldOfMyObject'). val ())
        return {classes: 'row-selected'};
    return {};
}

Do not forget to create the css for the selected row:

.row-selected {
    background-color: #a9f0ff !important;
    font-weight: bold;
}

I hope it serves you, Greetings.

Solution 4:

i have used this script on bootstrap-table.

$('#tb-pegawai').on('change', 'tr' , function (event) {
            if($('.selected')){ // } })

References

Related:  Bootstrap tab activation with JQuery
not working on a bootstrap table. What might be the reason?