关闭和计数的初学者问题

时间:2014-11-24 19:05:54

标签: javascript

我有一个简单的循环来增加或减少floorNumber,并在进行时为底层分配楼层号。一个警告是关闭CSS3转换,因此用户可以看到发生转换。我想逐渐改变DOM的变化。 (很高兴使用setTimeout

不明白为什么闭包会导致某些变量错误(currentFloor不会data.destination),或者为什么循环被调用太多次。任何建议表示赞赏!

http://codepen.io/nm6833240/pen/QwwzRK

    var doQueue = function() {

        do {
            var data = floorQueue.shift();
            var dir = data.destination > currentFloor ? 1 : -1;
            var dis = (data.destination - currentFloor) * dir;

            for (;dis > 0; --dis) {


                var efx = transitionEvent();
                $floorNumber[0].addEventListener(efx, function() {

                    $floorNumber.removeClass('active');
                    if(dir === 1) ++currentFloor;
                    else if(dir === -1) --currentFloor;

                    doLights(dir);
                    doButtons();

                    if (privateAllowedStop(dis) || data.destination === currentFloor) {
                        doDoors();
                    }

                });
                $floorNumber.removeClass('active');


            }
        }
        while (floorQueue.length > 0);

0 个答案:

没有答案