我找到了一个不错的 ajax/jquery 无限滚动插件(http://hycus.com/2011/03/15/infinite-scrolling-like-new-twitter-with-php-mysql-jquery/),我能够塑造我的内容很好,但我遇到了一个问题——它只调用了一次 loadmore.php 脚本。让我展示一下代码:
在我的 index.php 文件中:
<script type="text/javascript">
$(window).scroll(function(){
if($(window).scrollTop() == $(document).height() - $(window).height()){
$('div#loadmoreajaxloader').show();
$.ajax({
url: "loadmore.php?lastid=" + $(".postitem:last").attr("id"),
success: function(html){
if(html){
$("#postswrapper").append(html);
$('div#loadmoreajaxloader').hide();
}else{
$('div#loadmoreajaxloader').html('<center>No more posts to show.</center>');
}
}
});
}
});
</script>
这部分调用我的 loadmore.php 文件并将最后一篇文章的 id 发送给它。这仅在我第一次滚动到页面底部时有效,它从 loadmore.php 加载条目,但不会再次调用 loadmore.php。我的 loadmore.php 文件有以下代码:
<?php
include('./includes/config.php');
if($_GET['lastid']){
$query = 'SELECT * FROM db WHERE id < "'.$_GET['lastid'].'" ORDER BY id DESC LIMIT 0,3';
$result = mysql_query($query);
while ($rec = mysql_fetch_object($result)) {
[SET MY VARS]
?>
[HTML & PHP DISPLAYING MY POST]
<?php
}
}
?>
在第一次 ajax 调用之后显示的 3 个帖子完美出现,正是我希望它们显示正确数据的方式。但是在前 3 个帖子出现后,我无法让接下来的 3 个帖子出现。
因此,如果我的 index.php 上默认有 5 个帖子,我滚动到底部,ajax 调用另外 3 个帖子,它们显示完美,但之后没有任何显示,即使还有很多帖子要显示。我的问题在哪里,ajax/jquery 向导?