为什么这个jQuery动画无限循环?

时间:2010-06-20 00:35:25

标签: jquery animation loops

我有一个积极拒绝循环的jQuery动画。它将播放动画一次,然后退出。

这是:http://stackoverflow.quickmediasolutions.com/stackad/fancy.html

以下是相关的代码部分:

function DoAgain()
{
    $('#block').stop().css('marginLeft','0px');
    var width = ($('#block').width()) / 2;
    var length = (1000 * num_ads) / document.getElementById('speed').value;
    $('#block').animate({marginLeft: '-=' + width},length,'linear',
      function() {
        DoAgain();
    });
}

我尝试使用Chrome JavaScript控制台调试应用程序,但根据它,一切正常。 (没有错误,DoAgain()被称为罚款,等等。)

我真的被困在这里 - 赞赏正确的方向。

2 个答案:

答案 0 :(得分:1)

我真的不知道为什么,但你的stop()似乎已经打破了它。在这里,我为你修好了:

http://jsfiddle.net/34dvF/3/

function DoAgain()
{
    $('#block').css('marginLeft','0px');
    var width = $('#block').width() / 2;
    var length = (1000 * num_ads) / $('#speed').val();
    $('#block').animate({marginLeft: '-=' + width}, length, 'linear', DoAgain);
}

你真的不需要stop(),对吗?在再次调用该函数之前,动画已经完成。

答案 1 :(得分:0)

我想我会与大家分享解决方案:

显然只能在动画项目上调用stop(),所以我插入以下内容:

$('table:animated').stop(true,false);

...这将仅在动画运行时停止动画。