jQuery:链接自己回调的函数?

时间:2010-10-27 07:10:04

标签: javascript jquery callback

我有一个javascript函数在回调时调用自己,我想知道如何在所有回调完成后链接其他函数?也许最好用代码解释:

$(document).ready(function() {
    sequentialFadeIn($('#demolist li'));
});

function sequentialFadeIn(item) {
    item.eq(0).fadeIn("fast", function() {
        (item=item.slice(1)).length && sequentialFadeIn(item)
    }
}

因此,sequentialFadeIn函数遍历'demolist'中的所有列表元素并逐个淡化它们。我想做的是在运行了sequentialFadeIn的所有迭代之后执行另一个函数(让我们称之为“sequentialMoveUp”)。我是jQuery的新手,所以这个问题可能就像'如何在jQuery中链接非jQuery方法'或'如何在jQuery中对非jquery方法运行回调'......或者说它可能不会。任何想法最受赞赏。

1 个答案:

答案 0 :(得分:1)

您需要将最后一次回调传递给sequentialFadeIn。接下来就是在条件逻辑中添加一个额外的案例,以便在没有项目的情况下。然后你调用最后一个回调。的 [Demo]

<强>代码

function sequentialFadeIn(items, callback) {
    items.eq(0).fadeIn("fast", function() {
       items = items.slice(1);
       if (items.length) // items left
         sequentialFadeIn(items, callback);
       else              // no items left -> finished
         callback();
    });
}

<强>用法

sequentialFadeIn($('#demolist li'), sequentialMoveUp);