JQuery 无限循环?
infinite looping in JQuery?
下面是代码
function mafunk(z){
if(z == 1){
$(".cloud").each(function(index, element) {
if(!$(this).attr('id')){
$(this).css("left", -20+'%');
$(this).next('a').css("left", -20+'%');
}
});
}
var x = (Math.random() * 10000) + 20000;
$('.cloud').animate({
left: '150%'
}, x, 'linear', mafunk(1));
}
mafunk(0);
我不知道我的代码哪里错了,基本上,我尝试制作动画的东西有我无法更改的初始化位置。因此,我调用了 mafunk(0),这样它就不会改变初始位置。动画结束后(当我制作动画的东西达到 150% 时),它会调用 mafunk(1) 因此该函数将重新定位这些东西,这样它们就可以再次制作动画了。
上面的代码让我的动画停止了,但是,我通过检查元素进行了检查,它们都停留在左侧位置 -20%,甚至一次都没有动画。如果我删除回调 "mafunk(1)",它将动画化,但只有一次:/我哪里出错了?
animate
需要一个函数作为最后一个参数,因此它可以调用它。
现在,您通过了 mafunk(1)
。这不是函数,这是函数调用的结果,它是 undefined
。你应该传递的是 function(){ mafunk(1) }
.
更改此行
}, x, 'linear', mafunk(1));
到
}, x, 'linear', function(){ mafunk(1) });
下面是代码
function mafunk(z){
if(z == 1){
$(".cloud").each(function(index, element) {
if(!$(this).attr('id')){
$(this).css("left", -20+'%');
$(this).next('a').css("left", -20+'%');
}
});
}
var x = (Math.random() * 10000) + 20000;
$('.cloud').animate({
left: '150%'
}, x, 'linear', mafunk(1));
}
mafunk(0);
我不知道我的代码哪里错了,基本上,我尝试制作动画的东西有我无法更改的初始化位置。因此,我调用了 mafunk(0),这样它就不会改变初始位置。动画结束后(当我制作动画的东西达到 150% 时),它会调用 mafunk(1) 因此该函数将重新定位这些东西,这样它们就可以再次制作动画了。
上面的代码让我的动画停止了,但是,我通过检查元素进行了检查,它们都停留在左侧位置 -20%,甚至一次都没有动画。如果我删除回调 "mafunk(1)",它将动画化,但只有一次:/我哪里出错了?
animate
需要一个函数作为最后一个参数,因此它可以调用它。
现在,您通过了 mafunk(1)
。这不是函数,这是函数调用的结果,它是 undefined
。你应该传递的是 function(){ mafunk(1) }
.
更改此行
}, x, 'linear', mafunk(1));
到
}, x, 'linear', function(){ mafunk(1) });