为什么,当我识别一个值时,它是否以未定义的形式返回?

时间:2013-12-25 11:51:00

标签: javascript jquery html timer

<script src = "http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script>
    $(document).ready(function(){
        var secs_time;
        var timer2;
        var arrayseq1 = [];
        var secs_up = 0;
        var timer1;
        var secs_down = 0;
        $("#pad").mousedown(function(){



            $(this).css("background-color", "lightgrey");
            clearInterval(timer2);  

            timer1 = setInterval(function(){
                secs_down = secs_down + 1;
                $("#pad").html(secs_down);
            },1);

            arrayseq1 = arrayseq1.concat([secs_down]);



        }).mouseup(function(){



            $(this).css("background-color", "grey");
            clearInterval(timer1);

            timer2 = setInterval(function(){
                secs_up = secs_up + 1;
                $("#pad").html(secs_up);
            },1);
            arrayseq1 = arrayseq1.concat([secs_up]);
        });
        $("#pad").mouseleave(function(){
            clearInterval(timer2);

        });
        $("#done").click(function(){
            arrayseq1.splice(1, 1);
            arrayseq1.splice(0, 1);
            var counter = 0;
            var colors = ["#FF3E96", "#4169E1", "#7FFF00","#FF4500","#FF7F00", "black", "white"];
            while(counter <= arrayseq1.length){
                setTimeout(function(){
                    var color = colors[Math.floor(Math.random()*colors.length)];
                    $("body").css("background-color", color);
                }, arrayseq1[counter]);

                counter++;
            }
        });

    });
</script>
<div style = "height:500px;width:600px;background-color:grey;border-radius:4px;margin:0 auto;margin-top:10%;" id = "pad"></div>
<input type = "button" id = "done" value = "play">

大家好。

我正在制作一个小程序,当你按下并按下一个巨大的灰色按钮时,它会记录它按下的时间,然后全部放入一个数组(阅读代码以便更好地理解它,不难理解)。无论如何,所以它成功地记录了数组的时间,所以数组&#34; arrayseq1&#34;确实有一个列表,例如[106,144,114,152,122,161,130,311,148,357]。当我尝试循环遍历每个数字时,问题出现了,并将每个数字用作背景闪光的延迟。所以,具体问题是当我替换&#34; arrayseq1 [counter]&#34;在setTimeout函数中。由于某种原因,我不明白,它是未定义的。为什么?我该如何解决这个问题?

在这个jsfiddle中:http://jsfiddle.net/5V4Lv/ 在我将它用于setTimeout函数之前,我提醒值arrayseq1 [counter]该行,正如您将看到的,它会警告&#34; undefined&#34;

因此您可以成功测试,快速随机地点击灰色框,然后当您关闭时,将鼠标移开框以停止录制。然后单击“播放”以开始闪烁。

这样做的最初目的是让背景以完全同步的方式随机闪烁,并拍到你最初点击灰色框的方式。

谢谢!

0 个答案:

没有答案