Wordpress AJAX 加载更多检查帖子的结尾

我的 AJAX 加载更多功能没有正确检查帖子的结尾 - 如果没有帖子,它会再显示一次预加载器。这是由于每次在发送 ajax 请求之前删除 pleroader 的隐藏类造成的。


我应该如何检查帖子的结尾是否正确?


AJAX


如果响应为 0 - 只需隐藏预加载器。因此,在不应该显示的情况下,会再次显示预加载器。


    var page = 3;

    var emptyQuery = false;

    function load_posts() {

        page++;


        var category = $('.cat-list__item.active').data('category');

        $.ajax({

            url: flow.ajax_url,

            type: 'POST',

            beforeSend: function (jqXHR) {

                $('body').addClass('loading');


                if ($('.preloader').length) {

                    $('.preloader').removeClass('preloader--hidden');

                }

            },

            data: {

                action: 'scroll_post_load',

                page: page,

                category: category


            },

            success: function (response) {

                if ( response==0 ) {

                    emptyQuery = true;

                    if ($('.preloader').length) {

                        $('.preloader').addClass('preloader--hidden');

                    }

                } else {

                    if ($('.preloader').length) {

                        $('.preloader').addClass('preloader--hidden');

                    }


                    var html = response;

                    $(html).hide().appendTo('.posts-list').fadeIn(1000);

                }


                $('body').removeClass('loading');

            }

        });

    }


    // Scripts which runs on scrolling

    $( window ).on( 'scroll', function() {

        if( $(window).scrollTop() > $('.posts-list').height() && !$('body').hasClass('loading')) {

            if(emptyQuery == false) {

                load_posts();

            }

        }

    } );


临摹微笑
浏览 106回答 1
1回答

胡子哥哥

如果您只是在响应中返回页面总数,然后在脚本中检查下一页是否是最后一页或其他内容,则可以解决此问题。这就是我通常这样做的方式。我总是随内容一起返回最大页数,以便我可以检查是否需要最后一次执行 AJAX 调用。
打开App,查看更多内容
随时随地看视频慕课网APP