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 页。在第二页之后,jquery 元素停止工作并默认返回正常分页?

谁能明白为什么会这样?

4

1 回答 1

0

除非此代码在<script>加载到的内容中包含的标记内,否则#content动态加载的内容中的链接将没有点击绑定。

您可能需要重新应用点击绑定:

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

当然,那你必须定义一个合适的函数来绑定。否则你需要再次编写相同的代码......

有点hackish,在伪代码中:

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 回答