How can I change the background color of a table-row with a click event that changes url? I only want the new background color for the time the page takes to load the new url, basically to give the user feedback that the button or table-row is clicked before the page actually changes.
            Asked
            
        
        
            Active
            
        
            Viewed 2,365 times
        
    0
            
            
        - 
                    Post some code. Show us what have you tried? Can you create a fiddle? – Satpal Oct 31 '13 at 13:42
- 
                    It's a CCS thing, not javascript. take a look at this question: [Highlight selected row using css](http://stackoverflow.com/questions/5154955/highlight-selected-row-using-css) – shawnzhu Oct 31 '13 at 13:46
- 
                    @shawnzhu you need Js or how to assign the class to the selected row? – DaniP Oct 31 '13 at 13:48
- 
                    I couldn't understand your question. You want to change the background color of a clicked row? – akinuri Oct 31 '13 at 13:49
- 
                    Yes, but not permanently, only untill the new page loads. The row takes me to a new page when its clicked. – jlodenius Oct 31 '13 at 13:51
5 Answers
2
            Here is one way of doing it
$('table tr').click(function(evt) {
    var row = $(evt.currentTarget);
    row.addClass("loading");
    setTimeout(function() {
         row.removeClass("loading");   
    }, 2000);
})
 
    
    
        Rainer Plumer
        
- 3,693
- 2
- 24
- 42
0
            
            
        I think this is like showing a loading animation on an ajax call or something. You can try a Jquery. If the table row has an ID then
$('tablerow').click (function(){
         $('tablerow').css("background-color","red");
});
Or you can use to fire this function on any other events like button click or link click etc ...
Check this Jquery change background color
 
    
    
        Community
        
- 1
- 1
 
    
    
        Ranjith Siji
        
- 1,125
- 3
- 12
- 19
0
            
            
        plain javascript:
<script type="text/javascript">
    document.addEventListener('DOMContentLoaded', function () {
        for (var i = 0; i < document.getElementsByTagName('tr').length; i++) {
            (function (a) {
                document.getElementsByTagName('tr')[a].addEventListener('click', function () {
                    document.getElementsByTagName('tr')[a].style.background = 'red';
                }, false);
            })(i);
        }
    }, false);
</script>
 
    
    
        Vicky Gonsalves
        
- 11,593
- 2
- 37
- 58
0
            
            
        FIDDLE: http://jsfiddle.net/83wBV/
HTML
<table id="tbl">
    <tr>
        <td>row 1 cell 1</td><td>row 1 cell 2</td>
    </tr>
    <tr>
        <td>row 2 cell 1</td><td>row 2 cell 2</td>
    </tr>
</table>
CSS
table, tr, td {
    border: solid 1px #444;
    border-collapse: collapse;
    color: white;
}
tr {
    background-color: #47F;
}
td {
    padding: 0 10px;
}
JS
function onClick(evt) {
    var el = evt.target;
    if (el.tagName.toLowerCase() == "td") 
        el = el.parentNode;
    el.style.backgroundColor = "#F74";
}
document.getElementById("tbl").addEventListener("click", onClick);
 
    
    
        fred02138
        
- 3,323
- 1
- 14
- 17
 
    