javascript - 仅在使用 jquery 从末尾删除后添加

标签 javascript jquery prepend

我制作了这个运行良好的脚本。它得到一个包含不同数量元素的提要。然后,例如,如果有 5 个元素,它会从末尾删除 5 个,并将 5 添加到开头。

不幸的是,似乎存在一个问题,即在添加元素之前并不总是等待元素从末尾完全删除。这会导致页脚上下颠簸。

我想知道是否有人知道如何解决我的问题。我尝试添加延迟,但这只是部分帮助。

$(document).ready(function() {
    window.setInterval(function(){

        $.ajax({
            type: 'POST',
            url: location.protocol+'//'+location.hostname+'/index/feed',
            success: function(data) {

                var arr = data.split('@@@@@@@@@');

                $('#feed > .feed-item').slice(-1 * arr[0]).fadeOut(1000, function(){
                    $(this).remove();
                });

                $("#feed").delay(2000).prepend(arr[1]);

            }
        });

    },2000);
});

最佳答案

我不得不稍微更改代码以使其在本地运行,但我认为这个示例可以让您很好地掌握。

我创建了一个函数:removeFeed(callback),它接收一个函数作为参数,这个函数在 remove 语句之后被调用。

在 $.ajax 的 de success 中,您创建了一个匿名函数作为 removeFeed 的参数,并在其中放置了前置函数。

希望对您有所帮助!

$(document).ready(function() {
    var root = 'http://jsonplaceholder.typicode.com';
    var counter = 1;

    function removeFeed(callback) {
        $('#feed > .feed-item').fadeOut(1000, function() {
            $(this).remove();
            callback();
        });
    }
    window.setInterval(function() {
        $.ajax({
            url: root + '/posts/' + (counter + 1),
            method: 'GET',
            success: function(data) {

                removeFeed(function() {
                    $("#feed").prepend("<li class='feed-item'>" + data.title + "</li>");
                })

            }
        });

    }, 2000);
});

ps:它的功能齐全,只需复制并粘贴到页面中即可查看它的工作情况。

关于javascript - 仅在使用 jquery 从末尾删除后添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38026455/

相关文章:

php - 使用 DOM 将文本节点 append 到 HTML 元素?

javascript - 如何使我的函数在全局范围内可见

if else 语句中的 javascript 警报未触发

javascript - ace-editor 中的自定义自动完成在 "."之后不起作用

javascript - 如何将动态数据提供给静态jquery函数?

javascript - react 前置项目列表

javascript - Array.reduce() 堆叠数字而不是对它们求和?

javascript - 在不破坏事件监听器的情况下替换 html 的 jQuery 替代方案

javascript - 默认情况下选中复选框时,即时更改行的背景颜色

ruby-on-rails - rails prepend_view_path 可安装引擎