Javascript函数只在firefox上运行一次

时间:2015-11-16 10:15:26

标签: javascript jquery firefox

我有以下javascript函数:

function kitemoving() {
    setInterval(function(){
        kite.animate({
            top: '+=30'
        },{ 
            duration: 1500 
        });
        kite.animate({
            top: '-=30'
        },{ 
            duration: 1500
        });
    });
}
kitemoving();

以下是Fiddle

它只在Mozilla Firefox上运行良好所有使用此代码的动作只能使用一次。你能帮我理解为什么吗?

4 个答案:

答案 0 :(得分:3)

不要使用间隔,您可以轻松地使fx队列饱和。相反,使用任何完整的动画回调,例如:

var kite = jQuery('.kite');

function kitemoving() {
    kite.animate({
        top: '+=30'
    }, {
        duration: 1500
    });
    kite.animate({
        top: '-=30'
    }, {
        duration: 1500
    }).promise().done(kitemoving);
}
kitemoving();

-jsFiddle-

答案 1 :(得分:2)

您必须为延迟参数指定一个值。

setInterval至少需要两个参数。引自another question

  

func是您想要重复调用的函数。

     

delay是毫秒数(千分之一秒)   setInterval()函数应该在每次调用func之前等待。和。一样   setTimeout,强制执行最小延迟。

     

param1, param2,等等是其他参数   传递给func。

指定的函数

因此,当您省略第二个参数时,您不能指望定义的行为。

答案 2 :(得分:1)

为了让您的小提琴在Firefox中工作,您需要做的就是为<datetimepicker data-ng-model="user.join_date" data-datetimepicker-config="{ startView:'day', minView:'day' }" /> 电话提供间隔金额

this.future = false;

这是一个更新的小提琴,适用于Firefox:http://jsfiddle.net/wdodmvyu/5/

答案 3 :(得分:1)

你没有指定间隔值,这就是Gecko挣扎的原因。

{{1}}