我有一个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方法运行回调'......或者说它可能不会。任何想法最受赞赏。
答案 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);