簡體   English   中英

jQuery創建無限滾動加載更多按鈕

[英]jQuery create load more button with infinite scroll

在更大的監視器中,如果通過 div 內容限制完成加載,我的無限滾動不會加載更多另一個 div 內容。 所以我必須通過創建加載更多按鈕來解決這個問題。

如何在我的代碼上創建加載更多按鈕?

滾動.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;
}

滾動.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!");
        }
    });

});

這是來自原始站點的示例實時演示

我看不出有什么問題。 添加到 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