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参数。你没有通过h2or h3,所以那些是未定义的。

于 2012-04-19T17:50:23.603 回答
2

亚当,您将数组对象传递给 H1,而不是单独的变量

你可能想改变

myanimation(moves[i]);

到:

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

您将一个数组传递到myanimation它需要三个参数的位置。

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

根据您的代码,以下代码应该是这样的吗?

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