3

我创建了一个表格,其中的行具有交替的颜色(比如黄色和红色)。现在,我想将单击行的颜色更改为一种常见颜色(例如蓝色)。再次单击时恢复为原始颜色。我可以使用此代码更改颜色

$("#mainTable").find('#'+IDClicked).css("background-color", "#bbbbff");

我无法弄清楚如何恢复。

4

4 回答 4

10

我们假设您的代码是这样的:

HTML

<table id="rowClick">
    <tr>
        <td>Cell</td>
        <td>Cell</td>
        <td>Cell</td>
        <td>Cell</td>
    </tr>
    <tr>
        <td>Cell</td>
        <td>Cell</td>
        <td>Cell</td>
        <td>Cell</td>
    </tr>
    <tr>
        <td>Cell</td>
        <td>Cell</td>
        <td>Cell</td>
        <td>Cell</td>
    </tr>
</table>

在这种情况下,您可以这样使用 jQuery:

$(document).ready(function(){
    $("#rowClick > tr").click(function(){
        $(this).toggleClass("active");
    });
});

最后是 CSS 部分:

table tr.active {background: #ccc;}

小提琴:http: //jsbin.com/icusec/2

于 2012-10-19T08:54:10.603 回答
3

试试下面的代码

CSS

.high-light{background:blue !important;}

jQuery

$(document).ready(function(){

 $('table tr').click(function(){ $(this).addClass("high-light");  });
 //If you have TD's background set try the below commented code
  $('table tr td').click(function(){ $(this).parent().find('td').addClass("high-light");  });
});
于 2012-10-19T08:57:12.320 回答
3

准确回答您的问题:

$('#box').on('click', function() {
    var box$ = $(this),
        isBgColorChanged = box$.data('isBgColorChanged'),
        bgColor = !!isBgColorChanged ? '#444' : '#ccc';
    box$.css('background-color', bgColor)
        .data('isBgColorChanged', !isBgColorChanged);
});​

小提琴

更优雅的解决方案:

$('#box').on('click', function() {
    $(this).toggleClass('activated');
});​

小提琴

于 2012-10-19T09:04:08.643 回答
2

试试这个演示

$('table tr').toggle(function(){
$(this).addClass('myclass');
}, function(){
$(this).removeClass('myclass');
});​

css

.myclass{
background: red;
}

table tr{
 background: yellow;
}
于 2012-10-19T08:55:58.650 回答