.animate()中的匿名回调函数无法正常工作

时间:2010-10-26 15:23:20

标签: jquery jquery-animate jquery-callback

我不能为我的生活弄清楚这段代码的问题是什么。动画本身很好用:

if (!list.is(':animated')) {
    list.animate(
        {"top": "+="+item_size},
        {queue:false, duration:speed},
        function() {
            alert();
        }
    ); // end of animate function

} //end of if statement

2 个答案:

答案 0 :(得分:5)

你混淆了.animate()的两个签名。您需要将回调作为options参数的一部分:

if(!list.is(':animated')){
    list.animate({
        top: "+="+item_size
    }, //end of properties argument
    {
        queue: false, 
        duration: speed,
        complete: function(){
            alert();
        } //end of callback
    }  // end of options argument
    ); // end of animate function
} //end of if statement

答案 1 :(得分:1)

检查API,您似乎没有正确调用该功能:

.animate( properties, [ duration ], [ easing ], [ callback ] )

猜猜你应该怎么称呼它:

.animate( {"top": "+="+item_size}, speed, 'linear', function(){alert();});

linear更改为您需要的任何缓动功能。