2011-05-24 79 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中,此時我們需要知道更多關於你回來的東西)