-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
var last_foto[i] = foto_rand;

これは無効です。varまた、配列は既に初期化されているため、キーワードを使用する必要はありません。

あなたimg()rimg()機能の両方で。

また、多くの変数を再宣言しているようです。変数が宣言されたら、別のスコープにいて、同じ名前のローカルでグローバルを上書きしたい場合を除いて、再宣言する必要はありません (ただし、読みやすくするためには使用しないことをお勧めします)。

于 2013-11-07T13:37:10.957 に答える
0

ビルトインArray.push(item)およびArray.pop()ループ内で使用すると、カウンターをスキップできます

于 2013-11-07T14:07:45.613 に答える