0

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

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

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

我在JsFiddle创建了一个示例。谁能帮我?

4

1 回答 1

0

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

编辑:下次请在帖子中包含您的代码,而不仅仅是在 jsfiddle 中,这样这篇文章就可以在没有外部参考的情况下独立存在

            _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:看到这个小提琴:http: //jsfiddle.net/7FXtL/10/

于 2012-09-06T09:07:11.797 回答