无限卷轴问题

时间:2013-03-06 03:53:33

标签: ajax jquery

我正在使用jQuery在我的网站上实现所谓的“无限滚动”效果。它目前工作正常,但我有一个担忧。也就是说,虽然数据库行已经结束,但如果滚动条向下,它继续抓取数据,在这种情况下,数据是不存在的数据。我想要的是,一旦数据库行结束,即使滚动条到达,它也不应该获取数据。

<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>

2 个答案:

答案 0 :(得分:0)

我想你可以试试这个

$(window).scroll(function(){
    if(loaded_messages < message_count)
    {
        if ($(window).scrollTop() == $(document).height() - $(window).height()){
            last_msg_funtion();
        }
    }
}); 

答案 1 :(得分: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');
        }
    }
};