0

基本的に、ニュース フィードのような facebook/twitter を作成しようとしています。データベースからのみ、少なくとも 3 つの最新の投稿が表示されます。

投稿の下部に、クリック可能な div がありますload 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>

結果の最後の ID (13) を表示するmy<span>タグも表示されます。これは、以下の 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 に答える