Javascript SetTimeOut函数无法重置表中的每个单元格颜色

Javascript SetTimeOut函数无法重置表中的每个单元格颜色,javascript,javascript-events,Javascript,Javascript Events,嘿,伙计们,我有两张html表格。所有单元格值都将在3秒内按间隔进行更改。 而且,当一个单元格发生变化时,它会根据上一个周期中设置的单元格值设置其背景颜色。同时,在2秒后,为单元格设置settimeout功能以重置背景颜色 我的问题是每2秒钟我需要重置电池的颜色,但 setTimeout函数仅适用于最后一个单元格 注意: 在我的应用程序中,每个单元格都在改变自己的周期,所以重置单元格的颜色必须对其所有者(单元格)起作用。不在同一时间。 我在中创建了一个示例。有人能帮我吗?这是一个经典的“循环中的

嘿,伙计们,我有两张html表格。所有单元格值都将在3秒内按间隔进行更改。 而且,当一个单元格发生变化时,它会根据上一个周期中设置的单元格值设置其背景颜色。同时,在2秒后,为单元格设置settimeout功能以重置背景颜色

我的问题是每2秒钟我需要重置电池的颜色,但 setTimeout函数仅适用于最后一个单元格

注意: 在我的应用程序中,每个单元格都在改变自己的周期,所以重置单元格的颜色必须对其所有者(单元格)起作用。不在同一时间。

我在中创建了一个示例。有人能帮我吗?

这是一个经典的“循环中的闭包”问题。您已经尝试创建另一个内部闭包来包含本地上下文,但没有找到参数(并使用==来分配而不是比较)

编辑:下次请将您的代码包含在文章中,而不仅仅是JSFIDLE中,这样该文章就可以在没有外部引用的情况下独立存在

            _cellColorTimeouts[obj] = setTimeout((function(_cell, _obj) {
                return function() {
                    debugger;
                    _cell.css({
                        "background-color":"white",
                        "color":"black"
                    });

                    _cellColorTimeouts[_obj] = null;
                    clearTimeout(_cellColorTimeouts[_obj]);
                };
            })(cell,obj), 2000);

EDIT3:看到这把小提琴了吗:

你更新的小提琴和我的一模一样:我想它没有更新。你能不能再发送一次,因为我像你一样更改了代码,但即使是最后一个单元格也没有恢复颜色。对不起,它在我的屏幕上工作正常,但我忘了为其他人更新小提琴:-)查看最新编辑