-1

我想为last_foto创建整数数组并添加到循环中。我试过这段代码:

var last_foto = [];

function img()
{
    for(var i=1; i<9; i++)
    {
         var foto_rand = Math.floor(3*Math.random()+i*3);
         $("#foto-"+ i).html('<img style="position: relative;" height="100%" src="slides/'+ foto_rand +'.jpg" />');
         var last_foto[i] = foto_rand;
    }
}

function rimg()
{
    var rand = Math.floor(8*Math.random()+1);
    var foto_rand = Math.floor(3*Math.random()+3*rand);
    while(last_foto[rand] == foto_rand) var foto_rand = Math.floor(3*Math.random()+3*rand);
    $("#foto-"+ rand).fadeOut(2000, function() {
         $("#foto-"+ rand).html('<img style="position: relative;" height="100%" src="slides/'+ foto_rand +'.jpg" />');
    });
    $("#foto-"+ rand).fadeIn(2000);
    var last_foto[rand] = foto_rand;
}

但是在我添加之后:

var last_foto = [];

var last_foto[i] = foto_rand;

while(last_foto[rand] == foto_rand) var foto_rand = Math.floor(3*Math.random()+3*rand);

var last_foto[rand] = foto_rand;

所有 JavaScript 代码都停止工作。

4

2 回答 2

0

使用内置Array.push(item)Array.pop()循环,你可以跳过计数器

于 2013-11-07T14:07:45.613 回答
0
var last_foto[i] = foto_rand;

这是无效的。而且因为您已经初始化了数组,所以不需要使用var关键字。

在你的img()rimg()函数中。

此外,您似乎正在重新声明很多变量。一旦声明了一个变量,就不需要重新声明它,除非你在不同的范围内并且想用同名的本地覆盖全局(尽管为了可读性我建议不要这样做)

于 2013-11-07T13:37:10.957 回答