滚动时重新加载新内容

问题描述:

使用以下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项目日期。

你需要删除列表项原来的“LAST_ITEM”类,你把它添加到新的最后一个项目之前...

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

我是否需要我做之前,单击按钮时要做到这一点追加? – CLiown 2010-08-27 12:47:11

+0

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