如何在追加数据并完成该数据的函数后连续运行函数

How can I continuously run function after data is appended and function for that data is complete

本文关键字:数据 函数 运行 连续 追加      更新时间:2023-09-26

仍然是JS和jQuery的新手,并且我认为是解决我遇到的问题的简单方法。我有一个函数,我在文档准备好后正在运行,这个函数在数据中淡出然后淡出,但是当它到达这些结果的末尾时,没有其他显示。我只想循环该函数,以便不断显示这些结果。我可能让这听起来比它需要的更令人困惑,所以这就是我所拥有的......

    function shuffle(array) {
        var currentIndex = array.length;
        var temporaryValue;
        var randomIndex;
        while (0 !== currentIndex) {
            randomIndex = Math.floor(Math.random() * currentIndex);
            currentIndex -= 1;
            temporaryValue = array[currentIndex];
            array[currentIndex] = array[randomIndex];
            array[randomIndex] = temporaryValue;
        }
        return array;
    }
    var feedbackContainer = $(".feedback-container");
    var feedbackMessage;
    function getData(data) {
        if (data.ok) {
            var dataResults = shuffle(data.results);
            for (var i = 0; i < dataResults.length; i++) {
                feedbackMessage = dataResults[i].message;
                if(feedbackMessage) {
                    var review = $("<p />").text(feedbackMessage);
                    feedbackContainer.append(review);
                }
            };
        }
    }
    $(function(){
        $('.feedback-container p').each(function(index) {
            $(this).delay(7000*index).fadeIn(1000).delay(5000).fadeOut(1000);
        });
    })

如果我理解正确(有时我的吸收有点慢),有几种简单的方法可以使函数循环。一个是让函数在最后调用自己。

function foo() {
    // Do a bunch of stuff
    foo();
}

或者更好的是,使用 setInterval,这样您就可以让它只根据需要运行。

var bar = setInterval(foo, 1000); //runs every second
clearInterval(bar); //when you want it to stop

我希望这有所帮助

您可以创建一个循环函数来调用 getData 并重复绘制。假设你在这个叫做循环的函数上设置了间隔。

function loop() {
    getData(); //So you know the data is up to date.
    drawData(); //Your fadeIn/fadeOut script.
    //And if necessary 
    clearData();
}

这将循环检索数据并显示它。这有帮助吗?