javascript - jQuery - 如果单击并再次单击,则更改表格单元格的颜色

标签 javascript jquery html css

好的,所以我有以下简单的代码,它将表格中选定单元格的背景颜色更改为红色。效果很好。

CSS:

.fixture-table td.team.on {
    background-color: red;
}

JS:

$(document).on('ready', function() {
    // change the color to red on table when clicked
    $('td').click( function() {
        $(this).toggleClass('on');
    });
});

我要做的是在单击单元格时将其更改为红色。如果再次单击同一个单元格,则变为黄色。然后如果再次点击,则变为无背景色,这样就有了三种状态。

谢谢

最佳答案

我会添加一个数据属性来保存当前状态。然后根据此状态更改类。

http://jsfiddle.net/NhT92/

$('td').click(function () {
    var cell = $(this),
        state = cell.data('state') || 'first';

    switch (state) {
        case 'first':
            cell.addClass('red');
            cell.data('state', 'second');
            break;
        case 'second':
            cell.addClass('yellow');
            cell.data('state', 'third');
            break;
        case 'third':
            cell.removeClass('red yellow');
            cell.data('state', 'first');
            break;
        default:
            break;
    }
});

CSS

.red {
    background-color: red;
}
.yellow {
    background-color: yellow;
}

关于javascript - jQuery - 如果单击并再次单击,则更改表格单元格的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20882528/

相关文章:

javascript - 循环 HTML 变量并用内容替换 span

Jquery改变类

php - 在文本框中输入时不显示自动完成功能,但值显示在控制台中

javascript - 只能选中一个复选框

html - 在导航菜单中选择当前或事件链接的语义方式

jquery - 图像未显示在 Internet Explorer 中

javascript - Angular js : How to repeat unknown number of div?

javascript - 从 JavaScript 转换为

javascript - 全新安装后,Stenciljs 从 @types/babel__traverse 包抛出构建错误

javascript - Node.js 使用 Express 和 Mongoose 设置 Passport 时出现问题