编辑:感谢大家的帮助。它仍然无法正常工作。 如果我将表更改为有序列表,此脚本将正常。 (tr = ol和td = li)这就是为什么我真的认为问题来自代码的附加部分。有什么想法吗?
除了单击“加载更多”按钮后,一切似乎都能正常工作。新帖子加载但用户无法再次单击该按钮以加载更多帖子。我已经看过了,但找不到解决我问题的方法。
如果我删除此行:
$("#more"+ID).remove();
然后按钮确实显示但gif图像会一直处于加载状态且按钮无法点击...
这是index.php代码:
<table id="update_list" >
<tbody>
<?php
$result=query("SELECT * FROM postlist ORDER BY postid DESC LIMIT 9");
foreach ($result as $row)
{
$postid=$row['postid'];
$post=$row['post'];
?>
<tr id="<?php echo $postid ?>">
<td>
<?php echo $post; ?>
</td>
</tr>
<?php } ?>
</tbody>
</table>
<div id="more<?php echo $postid; ?>" class="morebox">
<a href="#" class="more" id="<?php echo $postid; ?>">more</a>
</div>
</div>
</body>
<script type="text/javascript">
$(function() {
$('.more').live("click",function()
{
var ID = $(this).attr("id");
if(ID)
{
$("#more"+ID).html('<img src="/loading.gif" />');
$.ajax({
type: "POST",
url: "loadmore.php",
data: "lastpost="+ ID,
cache: false,
success: function(html){
$("#update_list >tbody").append(html);
$("#more"+ID).remove();
}
});
}
else
{
$(".morebox").html('The End');
}
return false;
});
});
</script>
</html>
这是loadmore php页面:
<?php
include("includes/config.php");
if(isset($_POST['lastpost']))
{
$lastpost=$_POST['lastpost'];
$result=query("SELECT * from postlist WHERE postid < '$lastpost' ORDER BY postid DESC
LIMIT 5");
foreach ($result as $row){
$postid=$row['postid'];
$post=$row['post'];
?>
<tr id="<?php echo update$postid ?>">
<td>
<?php echo $post; ?>
</td>
</tr>
<?php } ?>
<div id="more<?php echo $postid; ?>" class="morebox">
<a href="#" class="more" id="<?php echo $postid; ?>">more</a>
</div>
<?php }?>
我在这里做错了什么提示? 谢谢!
答案 0 :(得分:2)
试试这个:
$(function() { $('.more').live("click",function() { var ID = $(this).attr("id"); if(ID) { $("#more"+ID).find("a").hide().insertAfter('<img src="/loading.gif" />'); //hide a link and insert image after it $.ajax({ type: "POST", url: "loadmore.php", data: "lastpost="+ ID, cache: false, success: function(html){ $("#update_list >tbody").append(html); $("#more"+ID).find("img").remove(); // remove img $("#more"+ID).find("a").show(); //and show link } }); } else { $(".morebox").html('The End'); } return false; }); });
答案 1 :(得分:1)
点击按钮后,您将删除load more
按钮
$("#update_list >tbody").append(html);
//$("#more"+ID).remove(); remove this line