【问题标题】:Adding callback to javascript while loop将回调添加到 javascript while 循环
【发布时间】:2015-04-18 16:03:31
【问题描述】:

我正在尝试在我的简历页面上复制打字机效果,并且除了一个部分之外还有其他工作:

while (i < tags.length) {
    type(tags[i], content[i], 0, 50);
    i++;
}

这是写出行的函数,它工作正常,除了它一次写出所有行。我希望它写一行,然后继续下一行,依此类推。我知道解决方案在于添加一个回调函数,但我似乎无法让它正常工作。任何帮助/建议将不胜感激。谢谢!

另外,这里是完整的jsfiddle

【问题讨论】:

    标签: javascript jquery callback jquery-callback


    【解决方案1】:

    回调和递归函数似乎是要走的路

    var type = function (target, message, index, interval, callback) {    
        if (index < message.length) { 
            $(target).append(message[index++]); 
            setTimeout(function () { 
                type(target, message, index, interval, callback); 
            }, interval); 
        } else {
            callback();
        }
    }
    
    var i = 0;
    
    (function recursive() {
        if (i < tags.length) {
            type(tags[i], content[i], 0, 50, recursive);
            i++;
        }
    })();
    

    FIDDLE

    【讨论】:

    • 这太棒了,完全符合我的要求。感谢您及时的回复。哪里是查看有关 setTimeout 想法的一些文档的好地方?
    • 这很整洁。但我个人不喜欢这个结果。必须等待并查看所有内容加载。
    • MDN 通常有很好的 JavaScript 文档。
    • @yellen - 这就是 OP 所要求的,在某些情况下它可以很整洁,只要知道访客会坐在那里等待它我想。
    • @adeneo - 抱歉,不是针对您的解决方案。 :P
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-09
    • 2011-12-11
    • 2015-11-17
    • 2016-11-23
    • 2013-08-11
    • 2016-05-29
    相关资源
    最近更新 更多