2

私のスクリプトの問題は何ですか?実行すると、アラート(2行目)で「100,200,300undefinedundefined」が表示されるため、h1、h2、およびh3(コンマ付き)にしたい場合、100,200,300はh1として解釈されるようです。

function myanimation(h1,h2,h3) {

        alert(h1 + h2 + h3);
        $("#h1").animate({"left": h1});
        $("#h2").animate({"left": h2});
    }

    var moves = new Array()
    moves[1] = [100,200,300];
    moves[2] = [300,200,100];
    moves[3] = [-500,-300,0];

    var i = 1;

    function animatenow(){
        myanimation(moves[i]);
        i++;
    }

$('#launch').click(function() {
        setInterval(animatenow, 5000);
    });
4

4 に答える 4

6

myanimationパラメータに対応する に配列を渡していh1ます。h2またはを渡していないh3ため、これらは未定義です。

于 2012-04-19T17:50:23.603 に答える
2

Adam、配列オブジェクトを H1 に渡していますが、個別の変数ではありません

あなたはおそらく変更したい

myanimation(moves[i]);

に:

myanimation(moves[i][0],moves[i][1],moves[i][2]);
于 2012-04-19T17:51:17.487 に答える
2

myanimation3 つのパラメーターが必要な場所に配列を渡しています。

myanimation(moves[i]);どこmoves[1] = [100,200,300]

だからh1あなたmyanimation[100,200,300]

配列を期待するように変更します。

function myanimation(moves) {
    $("#h1").animate({"left": moves[1]}); // moves[1] is 100
    $("#h2").animate({"left": moves[2]}); // 200
}
于 2012-04-19T17:51:19.500 に答える
0

Based on your codes, should the following codes like this?

function animatenow(){
    myanimation(moves[i][0], moves[i][1], moves[i][2]);
    i++;
}
于 2012-04-19T17:58:20.163 に答える