4

Infinite Scroll 内で新しい Tumblr のようなボタンを使用しようとしています (ホームページからの個々の Tumblr の投稿でテーマのようなボタンを許可します)。最初の「ページ」の最初の 15 の投稿に対して機能しますが、別のページが読み込まれるとすぐに機能しますページのいいねボタンが機能しなくなります。これらは、Docs ページの Tumblr から提供された指示です。

関数: Tumblr.LikeButton.get_status_by_page(n)
説明: 投稿の新しいページをリクエストした後に、この関数を呼び出します。読み込まれたばかりのページ番号を整数として取得します。

関数: Tumblr.LikeButton.get_status_by_post_ids([n,n,n])
説明: 個々の投稿のいいね! ステータスをリクエストします。投稿 ID の配列を取ります。

JQuery を適切に適用する方法がわからないため、これらの関数をどこに追加すればよいかわかりません。現在のテーマの JS は次のとおりです。

    // MASONRY
    var $container = $('#content');

    $container.imagesLoaded( function(){
        $container.masonry({
            itemSelector: '.entry',
            columnWidth: 220
        });
    });

    // INFINITE SCROLL
    $container.infinitescroll({
        navSelector  : '#pagination',
        nextSelector : '#pagination li a.pagination_nextlink',
        itemSelector : '.entry',
        loading: {
            img: 'http://static.tumblr.com/glziqhp/K37m9yaub/257__1_.gif'
        }
    },

    function( newElements ) {
        var $newElems = $( newElements ).css({
            opacity: 0
        });
        $newElems.imagesLoaded(function(){
            $newElems.animate({
                opacity: 1
            });
            $container.masonry(
                'appended', $newElems, true
            ); 
        });
    });
4

1 に答える 1

10

まず、各投稿に一意の投稿 IDを追加する必要があります。

<div class="entry masonry-brick" id="{PostID}">...</div>

ドキュメントには、新しい投稿 (または新しいページ) が追加/ロードされたら、いいね! ステータスを要求することが記載されています。

function( newElements ) {
    var $newElems = $( newElements ).css({
        opacity: 0
    });

    // Create Array of $newElems IDs
    var $newElemsIDs = $newElems.map(function () { 
        return this.id; 
    }).get();

    $newElems.imagesLoaded(function(){
        $newElems.animate({
            opacity: 1
        });
        $container.masonry(
            'appended', $newElems, true
        );

        // Let's just see what we have, remove console.log() if working
        console.log($newElems, $newElemsIDs);


        Tumblr.LikeButton.get_status_by_post_ids($newElemsIDs);
    });
});

それがあなたを正しい方向に向けてくれることを願っています。

于 2013-05-06T09:45:21.783 に答える