jQuery Tip: Highlight row on hover
This snippet applies a class when you hover over a table row and removes it when you move the mouse out. Useful when you have a table with many rows and want to improve readability.
Define your stylesheet in head
:
<style type="text/css"> <!-- #mytable { border-collapse: collapse; width: 300px; } #mytable th, #mytable td { border: 1px solid #000; padding: 3px; } #mytable tr.highlight { background-color: #eee; } //--> </style>
JavaScript (also in head
)
<script type="text/javascript"> <!-- $( function() { $("#mytable tr").hover( function() { $(this).addClass("highlight"); }, function() { $(this).removeClass("highlight"); } ) } ) //--> </script>
Your table (with id mytable
) in body
<table id="mytable"> <tr> <th>Foo</th> <td>Lorem</td> <td>Ipsum</td> </tr> <tr> <th>Bar</th> <td>Dolor</td> <td>Sit</td> </tr> <tr> <th>Baz</th> <td>Amet</td> <td>Consectetuer</td> </tr> </table>
Now whenever you move your mouse over a row in the table, the background colour is changed to gray (#eee
is a shade of gray).
Comments
$("#mytable tr:hover").addClass("highlight")
Also, you may want to do things as well as adding a class (e.g. showing fields).
If the tr already has a class it should still work (unless the class is named 'highlight').