我如何知道正在处理的红绿灯?

时间:2013-10-19 17:29:16

标签: jquery

我有2个交通信号灯,可以使用自己的相位。 您可以在JSFiddle访问我的演示,或查看源代码:

$(function() {
    traffic_lights = [
        [{color:'green' ,time:5 },
        {color:'yellow' ,time:3 },
        {color:'red' ,time:5 },],

        [{color:'green' ,time:10 },
        {color:'yellow' ,time:6 },
        {color:'red' ,time:10 },],
    ]


    for (var a = 0, f; a < traffic_lights.length; a++) {
        var g = traffic_lights[a];
        f = $("#c" + a);
        (function (a, d) {
            var b = 0,
                time = 0;
            return function s() {
                time || (a.css({"background-color": d[b].color}), time = d[b].time, b = ++b % d.length);
                a.html(time);
                time--;
                window.setTimeout(s, 1e3);
            }
        })(f, g)();
    }

})

我如何知道正在处理哪个红绿灯(跨度id)及其颜色是什么?

1 个答案:

答案 0 :(得分:1)

如果我说得对,则范围为f,因此其id属性为"c" + a。你可以用`f.css('background-color')来获得它的背景颜色。

编辑:问题真的不清楚,您对哪个范围和生命周期感兴趣?您应该在a内使用f代替s。正如你已经在做的那样。所以我对你认为你有什么问题感到困惑。