【问题标题】:JQuery and PHP Infinite Scrolling HelpJQuery 和 PHP 无限滚动帮助
【发布时间】:2011-05-24 15:49:23
【问题描述】:

我的无限滚动出现问题。当我向下滚动时,它会很好地加载下一个项目,但它会继续发送这些项目。我一直在使用这个 jquery 来给它一个唯一的 id,因为我已经用 mysql 用算法对项目进行了排序:

$("#image-list li").each(function(index) {
    $(this).attr('id', index);
});

为了从外部 php 文件中标记新给定的项目,我也必须在文件中使用此代码。

要发送有关给定项目的信息,我一直在使用这个 jquery:

function last_db_item_function() 
 { 

    var ID=$(".db-item:last").attr("id");
    $('div#last-db-item-loader').html('<img src="loading.gif" height="30px" />');
    $.post("index.php?action=get&last_db_item="+ID,

    function(data){
        if (data != "") {
        $(".db-item:last").after(data);         
        }
        $('div#last-db-item-loader').empty();
    });
 };  

 $(window).scroll(function(){
    if  ($(window).scrollTop() == $(document).height() - $(window).height()){
       last_db_item_function();
    }
 }); 

但问题是它似乎不起作用。我的意思是它不会从新解析的 php 文件中收集最后一个项目 id。为了解析我一直在做的 php:

$last_db_item = $_GET['last_db_item'];
$action = $_GET['action'];      

if($action != "get")
{
 .... Code Here....
}else{
 include ('secondimages.php');

}

所以我的问题是,为什么这似乎永远持续下去?

【问题讨论】:

  • 我认为是因为当您在其中附加数据时 window.height 总是在增加尝试调试表达式 $(window).scrollTop() == $(document).height() - $(window ).height())
  • @G molvi 我不知道我是否解释得很好,但我希望这是有道理的,为什么解析 secondimages.php 时 last_db_item_function() 函数会更新?它永久显示在前一个数字上,例如第一个最后一个数字是 6,当解析 php 时,该数字不会更新为 12 或保持在 6 上的任何值。
  • 只是为了确保加载请求触发得很好,但返回的数据总是相同的帖子?请与 Firebug(网络或控制台)检查通过 POST 标头传递的信息(以太其始终发送相同的 ID,或者 PHP 脚本发送相同的数据而不管 ID)
  • 那么页面是永远获取新元素,还是问题在于它一遍又一遍地获取相同的项目?
  • 你在 secondimages.php 中有什么我不认为它包含递归调用,但只是仔细检查

标签: php jquery infinite-scroll


【解决方案1】:

当您将新元素附加到列表时,您似乎从未为它们分配新 ID。您拥有的第一个 sn-p 需要在添加每个新元素后调用,或者在添加它时需要将类似的代码应用于该元素(除非它在 ​​php 中返回,此时我们需要了解更多关于您返回的内容)

【讨论】:

    猜你喜欢
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-28
    • 1970-01-01
    相关资源
    最近更新 更多