1

jQuery を使用して、いわゆる「無限スクロール」効果を Web サイトに実装しています。現在は正常に動作していますが、懸念事項があります。つまり、データベースの行が終わっても、スクロール バーが下に到達すると、データを取得し続けます。この場合、存在しないデータです。私が欲しいのは、データベースの行が終了すると、スクロールバーが下がってもデータを取得しないことです。

<script type="text/javascript">
$(document).ready(function () {
    var message_count = <? php echo $message_count; ?> ;
    var loaded_messages = 0;

    function last_msg_funtion() {
        $('div#more_button').html('<img src="./assets/img/loader.gif">');
        loaded_messages += 10;
        $.get("/flick/load_more_message/" + loaded_messages, function (data) {
            $("#load_more_message").append(data);
        });

        if (loaded_messages >= message_count - 10) {
            $("#more_button").hide();
            //alert('hide');
        }

    };


    $(window).scroll(function () {
        if ($(window).scrollTop() == $(document).height() - $(window).height()) {
            last_msg_funtion();
        }
    });
});
</script>
4

2 に答える 2

0

これを試すことができると思います

$(window).scroll(function(){
    if(loaded_messages < message_count)
    {
        if ($(window).scrollTop() == $(document).height() - $(window).height()){
            last_msg_funtion();
        }
    }
}); 
于 2013-03-06T04:08:14.423 に答える
0

(ボタンを非表示にするだけでなく)追加のデータを呼び出す前に確認してください

function last_msg_funtion() {
    if (loaded_messages < message_count) { // ADDED THIS CHECK
        $('div#more_button').html('<img src="./assets/img/loader.gif">');
        loaded_messages += 10;

        $.get("/flick/load_more_message/" + loaded_messages, function (data) {
            $("#load_more_message").append(data);
        });

        if (loaded_messages >= message_count - 10) {
            $("#more_button").hide();
            //alert('hide');
        }
    }
};
于 2013-03-06T04:10:02.177 に答える