PhoneGap中的JQuery递归函数

时间:2013-09-03 13:47:45

标签: javascript jquery phonegap-build

我一直在尝试使用PhoneGap并设法创建一个基本的记忆游戏,它会逐渐淡入和淡出一系列数字,期望用户正确地重复它。只有裸骨,所以在你完成序列之前你不会得到任何确认。

可以在此处访问游戏:http://jdtremelling.com/mobile/index.html

如果您喜欢它,出于测试目的,可以通过扫描此QR码下载该应用程序: enter image description here

问题是当应用程序加载时,序列中只有一个数字闪烁,然后没有其他任何事情发生。就好像递归函数永远不会执行一样。

使用随机数列表初始化JS数组的代码(增加每个级别的大小),然后显示第一个序列:

function initialiseArrays(){
                for(var i=4; i<9; i++){
                    var numbers = [];
                    for(var j=0; j<i; j++){
                        numbers.push(Math.floor(Math.random() * (max - min) + min));
                    }
                    allNumbers.push(numbers.slice());
                }

                fadeThemOut(allNumbers[0]);
            }

递归JavaScript函数:

    function fadeThemOut(children) {
var tmp = [];
   for(var i=0; i<children.length; i++){
      tmp[i] = children[i];
   }
   if (tmp.length > 0) {
      var currentChild = tmp.shift();
      switch(currentChild){
         case 1:
            $('#one').fadeOut('slow').delay( 800 ).fadeIn('slow', function() {
               fadeThemOut(tmp);
            });
            break;
         case 2:
             $('#two').fadeOut('slow').delay( 800 ).fadeIn('slow', function() {
                fadeThemOut(tmp);
             });
             break;
         case 3:
             $('#three').fadeOut('slow').delay( 800 ).fadeIn('slow', function() {
             fadeThemOut(tmp);
         });
         break;
       }
   }
}

1 个答案:

答案 0 :(得分:1)

尝试更改:

fadeThemOut(allNumbers[0]);

fadeThemOut(allNumbers);