0

私は現在、いくつかの ajax ページネーションに取り組んでいます。背後にある私のコードは次のとおりです。

jQuery(function ($) {

$('#content').on('click', '.navigation a', function (e) {
    e.preventDefault();
    var link = $(this).attr('href');

    $('#content').fadeOut(200, function () {
        $(this).load(link + ' #content', function () {
            $(this).fadeIn(200);

            if ($("#content > div#content").length > 0) {
                $("#content > div#content").unwrap();
            }

        });
    });
});});

これは最初の 2 ページに最適です。2 ページ目以降、jquery 要素が機能しなくなり、デフォルトで通常のページネーションに戻りますか?

これがなぜなのか誰にもわかりますか?

4

1 に答える 1

0

このコードが に<script>ロードされるものに含まれるタグ内にない限り#content、動的にロードされるコンテンツのリンクにクリック バインディングがありません。

クリック バインディングを再適用する必要がある場合があります。

$(...).load(..., function() {
    // ... 
    $('#content').on('click', ...
});

もちろん、バインドする適切な関数を定義する必要があります。そうしないと、同じコードをもう一度書く必要があります...

疑似コードで少しハックします:

jQuery(function ($) {

    function myPaginator (e) {
        e.preventDefault();
        var link = $(this).attr('href');

        $('#content').fadeOut(200, function () {
            $(this).load(link + ' #content', function () {
                $(this).fadeIn(200);

                if ($("#content > div#content").length > 0) {
                    $("#content > div#content").unwrap();
                }
                $('#content').on('click', '.navigation a', myPaginator);
            });
        });
    });

    $('#content').on('click', '.navigation a', myPaginator); 

});
于 2013-07-30T10:39:37.900 に答える