0

Web サイトで 2 つのスクリプトを使用しています

  1. ページをリロードせずに次の 3 つの投稿を読み込む jQuery/Ajax
  2. iFrame/モーダル ダイアログで各投稿を開く jQuery

問題は、「さらに投稿を読み込む」をクリックした後、最初の 3 つの投稿のいずれかをクリックすると、投稿が 2 回開かれることです。

以前のプレースホルダーの関数 superbox() を削除し、新しいプレースホルダーに再度追加する方法を見つける必要があります (そうしないと、新しい投稿が通常のウィンドウで開きます)。

ウェブサイトはhttp://gotoviproekti-och.comです。

    if(pageNum <= max) {
    // Insert the "More Posts" link.
    $('.content-middle')
        .append('<div class="pbd-alp-placeholder-'+ pageNum +'"></div>')            

        .append('<p id="pbd-alp-load-posts"><a href="#">Покажи още готови проекти</a></p>');

    $(function(){
        $.superbox();
        });
        //Single Page Carousel
        $(function() {
        $(".image").click(function() {
        var image = $(this).attr("rel");
        $('#image').hide();
        $('#image').fadeIn('slow');
        $('#image').html('<img src="' + image + '"/>');
        return false;
            });
        });
    }



/**
 * Load new posts when the link is clicked.
 */
$('#pbd-alp-load-posts a').click(function() {

    // Are there more posts to load?
    if(pageNum <= max) {

        // Show that we're working.
        $(this).text('Loading...');

        $('.pbd-alp-placeholder-'+ pageNum).load(nextLink + ' .pic',
            function() {
                // Update page number and nextLink.
                pageNum++;
                nextLink = nextLink.replace(/\/page\/[0-9]?/, '/page/'+ pageNum);

                // Add a new placeholder, for when user clicks again.
                $('.content-middle')
                .append('<div class="pbd-alp-placeholder-'+ pageNum +'"></div><div class="clearfloat"></div>')

                $.superbox.detach();

                $.superbox();


                // Update the button message.
                if(pageNum <= max) {
                    $('#pbd-alp-load-posts a').text('Load more posts');
            }
        );
    } else {
        $('#pbd-alp-load-posts a').append('.');
    }   

    return false;
});

});

4

1 に答える 1

1

を使用する$.on()と、イベントを 1 回バインドするだけで済みます。

$('#posts-container').on('click', '.post', doPostEvent);
于 2012-05-07T15:30:22.423 に答える