我的脚本有什么问题?当我执行它时,警报(第2行)给了我“100,200,300undefinedundefined”,所以看起来100,200,300被解释为h1,当我希望它是h1,h2和h3(用逗号)时。
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);
});
答案 0 :(得分:6)
您正在将数组传递到myanimation
,这与您的h1
参数相对应。您没有传递h2
或h3
,因此未定义。
答案 1 :(得分:2)
Adam,您将数组对象传入H1,而不是单独的变量
您可能想要更改
myanimation(moves[i]);
为:
myanimation(moves[i][0],moves[i][1],moves[i][2]);
答案 2 :(得分: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
}
将其更改为预期数组:
{{1}}
答案 3 :(得分:0)
根据您的代码,以下代码是否应该这样?
function animatenow(){
myanimation(moves[i][0], moves[i][1], moves[i][2]);
i++;
}