0

基本上,我试图创建一个 facebook/twitter 之类的新闻提要,其中我仅显示来自数据库的至少 3 个最新帖子。

在帖子的底部,我有一个可点击的 divload more posts..

单击 div 后,它当然会显示另外 3 个旧帖子,依此类推..

目前,我的数据库中有 15 个帖子,显示如下(id 15 作为最近添加的帖子)

id:15 - some posts - some comments
id:14 - some posts - some comments
id:13 - some posts - some comments

load more...

上面将显示帖子和每个帖子的相关评论

<ul id="post">
    <?php while.. { ?>
    <li><?php echo id; ?> - <?php echo posts; ?> </li>
         <ul id="comments">
            <?php while .. {?>
            <li> <?php echo comments; ?> </li>
            <?php } //end while ?>
         </ul>
    <?php } //end of while?>
</ul>
<span last_id="<?php echo id?>"> Load More ... </span>

您还可以看到我的<span>标签,它显示了结果的最后一个 ID (13)。然后将由我下面的 jQuery 处理。

这是标签的jQuery <span>,当点击它时,它将获取最后一个帖子ID(13),并使用最后一个ID值获取另一组3个旧帖子12,,1110

$(function() {
    $('.loadmore').click(function () {
        var last_id = $(this).attr('last_id');
        $.ajax({
            type:"POST",
            url:"../portal/includes/get_posts.php",
            data: "last_id="+last_id,
            success: function(html) {
            $('#post').append(html);
        }
        });
    return false; 
    });
});

获取的值将附加到我的<ul id="post">结果中以这种格式

id:15 - some posts - some comments
id:14 - some posts - some comments
id:13 - some posts - some comments
id:12 - some posts - some comments
id:11 - some posts - some comments
id:10 - some posts - some comments

load more...

但是当我load more...再次单击时,它不会查询另一组 3 个旧帖子。

看来,我的 jQuery 无法识别附加的。

我该如何解决这个问题?

谢谢。

4

2 回答 2

0

你应该在那个跨度上有一个类:

<span class="loadmore" data-last_id="<?php echo id?>">

正如已经指出的那样,它应该在 jQuery 中使用,例如:

$(document).on('click', '.loadmore', function () {
  //
});

并且$('.post').append(html);应该是$('#post').append(html);

我还会考虑将last-id属性更改为更友好的数据属性:

<span data-last_id="<?php echo id?>">

这将被 jQuery 拾取:

var last_id = $(this).data('last_id');
于 2013-10-15T15:43:48.270 回答
0

事件可能有问题,如果要操作ajax加载的内容,则需要使用事件绑定。因此,将其更改
$('.loadmore').click(function () {
为:
$(document).on('click', '.loadmore', function () {

于 2013-10-15T15:48:00.770 回答