1

我编写了一个自定义 jquery 函数,该函数接受回调,但无法理解当动画函数执行结束时回调函数将如何在调用环境中执行。

这是我的自定义功能代码

jQuery.fn.busyToggle = function (flag, marginBottom, opacity, speed, easing, callback) {
        if (flag == 1) {
            return this.stop(true).animate({ marginBottom: marginBottom, opacity: opacity }, { queue: false, duration: speed });
        }
        else {
            return this.stop(true).animate({ marginBottom: marginBottom, opacity: opacity }, { queue: false, duration: speed });
        }
    };

这样我调用这个函数

$('#BusyBox').busyToggle(flag,0,1,500);

我需要知道如何捕捉动画函数何时从调用环境结束。如果可能请详细讨论。谢谢

4

2 回答 2

1

一种方法是使用提供的回调函数.animate() 另一种方法是将其添加到链队列中,如:

jQuery.fn.busyToggle = function(flag, marginBottom, opacity, speed, easing, callback) {
    if (flag == 1) {
        return this.stop(true).animate({
            marginBottom: marginBottom,
            opacity: opacity
        }, {
            queue: false,
            duration: speed
        }).queue(callback);
    }
    else {
        return this.stop(true).animate({
            marginBottom: marginBottom,
            opacity: opacity
        }, {
            queue: false,
            duration: speed
        }).queue(callback);
    }
};​
于 2012-06-19T12:58:00.647 回答
0

只需将您的回调添加到完整选项animate

jQuery.fn.busyToggle = function (flag, marginBottom, opacity, speed, easing, callback) {
    ...
    this.stop(true).animate({ marginBottom: marginBottom, opacity: opacity }, { queue: false, duration: speed, complete: callback });
};

$('#BusyBox').busyToggle(flag,0,1,500, function(){ 
    // do something on complete
});
于 2012-06-19T13:06:22.170 回答