简体   繁体   English

jQuery创建无限滚动加载更多按钮

[英]jQuery create load more button with infinite scroll

In bigger monitor my infinite scroll's doesn't load more another div content if it's finish loaded by div content limit.在更大的监视器中,如果通过 div 内容限制完成加载,我的无限滚动不会加载更多另一个 div 内容。 So I have to fix this problem by create load more button.所以我必须通过创建加载更多按钮来解决这个问题。

How do I create load more button on my code?如何在我的代码上创建加载更多按钮?

scroll.php滚动.php

 include('db.php');

if(isset($_REQUEST['actionfunction']) && $_REQUEST['actionfunction']!=''){
$actionfunction = $_REQUEST['actionfunction'];
    call_user_func($actionfunction,$_REQUEST,$con,$limit);
}

function showData($data,$con,$limit){
    $page = $data['page'];
    if($page==1){
        $start = 0;
    }
    else{
        $start = ($page-1)*$limit;
    }

    $sql = "select * from infinitescroll order by id asc limit $start,$limit";
    $str='';
    $data = $con->query($sql);
    if($data!=null && $data->num_rows>0){
        while( $row = $data->fetch_array(MYSQLI_ASSOC)){
        $str.="<div class='data-container'><p>".$row['id']."</p><p>".$row['firstname']."</p><p>".$row['lastname']."</p></div>";
    }
        $str.="<input type='hidden' class='nextpage' value='".($page+1)."'><input type='hidden' class='isload' value='true'>";
    } else {
        $str .= "<input type='hidden' class='isload' value='false'><p>Finished</p>";
    }
echo $str;
}

scroll.js滚动.js

var ajax_arry = [];
var ajax_index = 0;
var sctp = 100;
$(function () {
    $('#loading').show();
    $.ajax({
        url: "scroll.php",
        type: "POST",
        data: "actionfunction=showData&page=1",
        cache: false,
        success: function (response) {
            $('#loading').hide();
            $('#demoajax').html(response);

        }

    });
    $(window).scroll(function () {

        var height = $('#demoajax').height();
        var scroll_top = $(this).scrollTop();
        if (ajax_arry.length > 0) {
            $('#loading').hide();
            for (var i = 0; i < ajax_arry.length; i++) {
                ajax_arry[i].abort();
            }
        }
        var page = $('#demoajax').find('.nextpage').val();
        var isload = $('#demoajax').find('.isload').val();

        if ((($(window).scrollTop() + document.body.clientHeight) == $(window).height()) && isload == 'true') {
            $('#loading').show();
            var ajaxreq = $.ajax({
                url: "scroll.php",
                type: "POST",
                data: "actionfunction=showData&page=" + page,
                cache: false,
                success: function (response) {
                    $('#demoajax').find('.nextpage').remove();
                    $('#demoajax').find('.isload').remove();
                    $('#loading').hide();

                    $('#demoajax').append(response);

                }

            });
            ajax_arry[ajax_index++] = ajaxreq;

        }
        return false;

        if ($(window).scrollTop() == $(window).height()) {
            alert("bottom!");
        }
    });

});

Here's example live Demo from original site.这是来自原始站点的示例实时演示

I don't see a problem.我看不出有什么问题。 Add into html button or link with id "load-more-button" and append this code to scroll.js添加到 html 按钮或 id 为“load-more-button”的链接并将此代码附加到 scroll.js

$('#load-more-button').click(function(e) {
    e.preventDefault();

    var page = $('#demoajax').find('.nextpage').val();

    $('#loading').show();
    $.ajax({
        url: "scroll.php",
        type: "POST",
        data: "actionfunction=showData&page=" + page,
        cache: false,
        success: function (response) {
            $('#demoajax').find('.nextpage').remove();
            $('#demoajax').find('.isload').remove();
            $('#loading').hide();
            $('#demoajax').append(response);

            var isload = $('#demoajax').find('.isload').val();
            if(!isload) $('#load-more-button').hide();
        }
    });
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM