JQuery中的无限循环

infinite looping in JQuery?

本文关键字:无限循环 JQuery      更新时间:2024-02-01

下面是代码

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),因此函数将重新定位这些东西,以便它们可以再次设置动画。

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

animate需要一个函数作为最后一个参数,因此它可以调用它。

现在,您通过mafunk(1)。这不是函数,这是函数调用的结果,它是undefined。你应该通过的是function(){ mafunk(1) }

更改此行

}, x, 'linear', mafunk(1));

}, x, 'linear', function(){ mafunk(1) });