2011-05-24 80 views
0

我遇到了无限滚动问题。当我向下滚动时,它会加载下一个项目,但它会继续发送这些项目。我一直在使用这个jQuery给它一个唯一的ID,因为我已经订购的物品与MySQL有一个算法:JQuery和PHP无限滚动帮助

$("#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文件中收集最后一个项目标识。解析php我一直这样做:

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

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

} 

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

+0

我认为,因为window.height总是增加,当你追加数据在它尝试调试表达式$(window).scrollTop()== $(document).height() - $(window).height()) – 2011-05-24 15:53:38

+0

@G molvi我不知道如果我解释得很好,但我希望这是有道理的,为什么在分析secondimages.php时last_db_item_function()函数会更新?它在永久性的前一个号码上说明 第一个最后一个数字是6,当php被解析时,数字不会更新到12或任何它保留在6. – Xplane 2011-05-24 15:57:33

+0

只是为了确保加载请求触发得很好,但返回的数据总是相同的张贴?请检查Firebug(unter net或控制台)通过POST头传递哪些信息(ether的始终是发送的相同ID,或者PHP脚本发送的是相同的数据,无论ID如何) – Hannes 2011-05-24 15:59:14

回答

0

它看起来像你从来没有分配一个新的ID到新的元素,当你将它们追加到列表。在添加每个新元素之后,您需要调用第一个片段,或者添加它时类似的代码需要应用于该元素(除非它返回到php中,此时我们需要知道更多关于你回来的东西)