JQuery中的无限循环?

Rei*_*Rei 0 javascript css jquery animation

下面是代码

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);
Run Code Online (Sandbox Code Playgroud)

我不知道我的代码在哪里出错了,基本上,我尝试动画的东西都有初始化位置,我无法改变.因此,我调用了mafunk(0),以便它不会改变初始位置.动画结束后(当我动画的内容达到150%时),它会调用mafunk(1),因此函数会重新定位事物,因此它们已准备好再次动画.

上面的代码使我的动画停止,但是我通过inspect元素检查了它们都被卡在左侧位置-20%,没有动画甚至一次.如果我删除回调"mafunk(1)",它将动画,但只有一次:/我哪里出错了?

Den*_*ret 5

animate 期望函数作为最后一个参数,因此它可以调用它.

现在,你过去了mafunk(1).这不是函数,这是函数调用的结果,而且它是undefined.你应该传递的是什么function(){ mafunk(1) }.

改变这一行

}, x, 'linear', mafunk(1));
Run Code Online (Sandbox Code Playgroud)

}, x, 'linear', function(){ mafunk(1) });
Run Code Online (Sandbox Code Playgroud)