滚动时重新加载新内容
问题描述:
使用以下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');
我是否需要我做之前,单击按钮时要做到这一点追加? – CLiown 2010-08-27 12:47:11
我只是在addClass行之前立即执行它。 – 2010-08-27 14:27:59