【发布时间】: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