1

我对此感到厌倦,直到现在我才找到解决方案。这是我的代码

$("#submit").click(function(e){
    e.preventDefault()  
    var loading = "<img src='/zojfa/images/loading.gif' alt='Loading...' />";
    var scrolltop=$('#scrollbox').attr('scrollTop');
    var scrollheight=$('#scrollbox').attr('scrollHeight');
    var windowheight=$('#scrollbox').attr('clientHeight');
    var post = $(this).attr("name") + "=" + $(this).val();
    var form_data = $('#search_form').serialize() + "&" + post;

    var scrolloffset=20;
    $('#search').html(loading);
    $.post("dosearch.php",form_data,function(newitems) {
        $('#content').append(newitems);
            });
    $('#scrollbox').scroll(function(){
    if(scrolltop>=(scrollheight-(windowheight+scrolloffset))){
        form_data = form_data + "&size=" + $("#content > div").size();
    setTimeout($.post("dosearch.php",form_data,function(newitems) {
        $('#content').append(newitems);
            }),5000);
    }
    });     
        });

});

当我发布表单数据时,此表单数据将序列化()并发送到 dosearch.php。

当我单击提交按钮时,该函数运行良好,函数将执行并给我结果集,即该脚本的第 11 行。

然后我会听滚动事件,当滚动事件发生时,我会计算我的内容 div 中的 div 以知道到目前为止我已经加载了多少 div 并将这个数字发送到 dosearch 以获得更多结果

SELECT something FROM table WHERE someid=some another id LIMIT $number(我从计算 div 中得到 .. 还有其他解决方案吗?可能为 div 设置 id 吗?我使用的这个解决方案是否足够好?),6

现在我的问题在哪里。我检查了萤火虫发布的数据

当我到达这个div的底部时,许多ajax请求会启动。并在firebug控制台中显示许多具有不同值的发布大小

size=6
size=12
size=12

我想过 settimeout 可能会修复我的脚本,但在这方面没有成功。

我感谢您的帮助。

4

1 回答 1

1

此链接可以帮助您获得结果。 点击这里进行演示

这将如何工作

于 2012-12-08T08:55:29.817 回答