2010-08-27 201 views
0

使用以下jQuery,它將UL中最後一項的id設置爲'last_item'。滾動時重新加載新內容

function oldest() { 
j('ul li:last-child').addClass('last_item'); 
oldestName = j('.last_item').attr('id'); 
alert('last ID is:'+ oldestName +'.'); 
} 

j(window).scroll(function(){ 
    if (j(window).scrollTop() == j(document).height() - j(window).height()){ 
      j.ajax({ 
       url: "older.php?oldest="+oldestName+"", 
       cache: false, 
       success: function(html){ 
        j(".older").html(html); 
        oldest(); 
       } 
      }) 
    } 
}); 

oldest(); //Call function on page load 

$('.button2').click(function() { 
    j('.older ul > *').clone().hide().appendTo('.tweets ul').slideDown(); 
    oldest(); 
}); 

滾動時older.php被稱爲包含:

$oldest = $_GET['oldest']; 

$getolder = mysql_query(" SELECT * FROM table where date < $oldest ORDER BY date DESC LIMIT 20"); 

但是目前什麼情況是從數據庫中的記錄確實會拉了回來,保存在一個隱藏的DIV。然後我使用jQuery將這些記錄添加到列表的末尾。

但是,當我下一次滾動到頁面底部並按下按鈕時,相同的記錄被添加到列表中。

任何能幫助我找出這是爲什麼嗎?

基本上它似乎是$最舊不是更新與新的最後UL項目日期。

回答

0

你需要刪除列表項原來的「LAST_ITEM」類,你把它添加到新的最後一個項目之前...

j('ul li').removeClass('last_item'); 
+0

我是否需要我做之前,單擊按鈕時要做到這一點追加? – CLiown 2010-08-27 12:47:11

+0

我只是在addClass行之前立即執行它。 – 2010-08-27 14:27:59