我想为 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代码都停止运行。
答案 0 :(得分:0)
var last_foto[i] = foto_rand;
这是无效的。而且由于您已经初始化了数组,因此无需使用var
关键字。
同时使用img()
和rimg()
函数。
此外,您似乎正在重新声明许多变量。一旦变量被声明,它就不需要重新声明,除非你在一个不同的范围内并且想要用同名的本地覆盖全局(尽管我建议不要考虑它的可读性)
答案 1 :(得分:0)
在循环中使用内置的Array.push(item)
和Array.pop()
,您可以跳过计数器