我有一个名为myitem.html的主html页面,然后我使用ajax显示从itembox.php文件加载的itembox,而当我在itembox中向下滚动时,new.php文件中的新内容是附加在itembox的末尾,然而,itembox中的newcontent附加了thress time,它们都是相同的,我怎么能只追加一次,
这是itembox.php
中html代码的一部分<div id="itemscrollbox">
<ul id = "scroll">
<li>0 item</li>
<li>0 item</li>
<li>0 item</li>
<li>0 item</li>
<li>0 item</li>
</ul>
</div>
这是在itembox.php文件中滚动更新的javascript代码的一部分:
function scroll() {
var scrolltop = $('#itemscrollbox').attr('scrollTop');
var scrollheight = $('#itemscrollbox').attr('scrollHeight');
var windowheight = $('#itemscrollbox').attr('clientHeight');
var scrolloffset = 0;
if (scrolltop >= (scrollheight - (windowheight + scrolloffset))) {
var ID = $("#myscroll li:last").attr("id");
$('#status').text('Loading more items...');
$.get('picturedata.php', 'id=' + ID + '', function(newitem) {
$('#scroll').append(newitem);
updateitemstatus();
});
}
setTimeout('scroll();', 2500);
}
这是new.php文件中代码的一部分:
输出应该给我:
first item
second item
但它给了我:
first item
second item
first item
second item
first item
second item
任何人都可以告诉我如何解决这个问题,非常感谢!
这里是滚动函数的调用方式:
$(document).ready(function(){
updateitemstatus();
scroll();
});
我假设因为主要的html页面是myitem.html在其中加载itembox,而itembox在向下滚动时附加来自new.php的新内容,所以函数$ .get被调用三次,但我无法'弄清楚如何避免这种情况。
答案 0 :(得分:0)
在追加之前,你应该$.clear()
你的结果div。
$('#scroll').clear();
$.get('picturedata.php', 'id='+ ID+'', function(newitem){
$('#scroll').append(newitem);
updateitemstatus();
});