For example: You have a table, and it has 4 tds and 2 trs. Table's background color is white. If i click to A td, A td should be red, than if i click to B, B td should be red and A td should be red too. If i click to C than, C should be red and B and A should be red too.
I have something like this. But it isnt good, because when i click again i want to change color back to white.
http://jsfiddle.net/k8UgT/193/
The code i use
<table>
<tr>
<td onclick="function()">AAA</td>
<td onclick="function()">BBB</td>
<td onclick="function()">CCC</td>
</tr>
<tr>
<td onclick="function()">DDD</td>
<td onclick="function()">EEE</td>
<td onclick="function()">FFF</td>
</tr>
</table>
JS:
$( function() {
$('td').click( function() {
$(this).css('background', '#aaa')
} );
} );
Welcome to SO.
First of all you don't need to onclick
attribute on the td's. Second of all I would suggest using a CSS class instead of setting the background color.
CSS
.red-cell {
background: #F00; /* Or some other color */
}
JS
$( function() {
$('td').click( function() {
$(this).toggleClass("red-cell");
} );
} );
Read more about toggleClass here. Updated fiddle
Use a CSS class for the red background and then use .toggleClass()
in your JavaScript.
JavaScript
$('td').click( function() {
$(this).toggleClass('on');
});
CSS
td.on {
background-color: red;
}
Updated Fiddle
try this:
$( function() {
$('td').click( function() {
if($(this).attr('style'))
$(this).removeAttr('style');
else
$(this).css('background', '#aaa')
} );
} );
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With