jQuery 顺序显示文本的插件

jQuery plugin to show text sequentially

我正在尝试创建一个插件,使用 FadeIn、FadeOut 在屏幕上依次显示元素。

脚本同时显示我的元素,但我确实调用了,然后,在下一个 fadeOut 之后,回调。我不知道那里发生了什么。

foreach elements in elements it fadesIn, wait, fadesOut 然后传递给下一个。

有什么帮助吗?任何已经存在的插件可以做这样的事情?

live example

已编辑:抱歉我忘了粘贴 link:

(function ($) {

let sentences;
let index;

$.fn.talk = function () {
    sentences = this.find(".sentence");
    index = -1;
    showNextSentence(sentences, index);
};

function showNextSentence() {
    ++index;
    if (index < sentences.length) {
        sentences.eq(index % sentences.length)
            .fadeIn(2000)
            .delay(2000)
            .fadeOut(2000, showNextSentence());
    }

    return null;
}

}(jQuery));

  $('.talk').talk();

改变

fadeOut(2000, showNextSentence())

fadeOut(2000, showNextSentence)

第一个版本将立即被调用,而不是在事件完成后

DEMO