jQuery Pagination问题记录

1.后台分页,前端无法正确计算页码(只显示第一页)

问题截图:

原代码:

 $(function () {
        var pageSize = 10; // 每页显示多少条记录
        var total;//总记录数
        Init(0);
        $("#pagination").pagination(total, {
            items_per_page: pageSize,
            callback: pageselectCallback,
            prev_text: '上一页',
            next_text: '下一页',
            num_display_entries: 4, // 连续分页主体部分显示的分页条目数
            num_edge_entries: 1, // 两侧显示的首尾分页的条目数
        });

        //点击上一页、下一页、页码的时候触发的事件
        function pageselectCallback(index, jq) { // index表示当前点击的那个分页的页数索引值-1(基0),
            // 后一个参数表示装载容器。
            Init(index)l;
        }

        function Init(pageIndex) { // 参数就是点击的那个分页的页数索引值
            $.ajax({
                url: "/studentsign/getNoticeForS.do",
                type: "post",
                dataType: "json",
                data: {
                    "pageNo": pageIndex + 1,//基1
                    "pageSize": pageSize
                },
                success: function (data) {
                    // 赋值total,用于计算
                    total = data.data.total;
                    console.log(total);
                    $("#list").empty();
                    $.each(data.data.list, function (i, item) {
                        $("#list").append("<li>" + item.title + "</li>")
                    });
                },
                error: function () {
                    alert("请求超时,请重试!");
                },
            });
        }
    });

原因:ajax默认为异步加载,没有设置同步加载,导致total值没有赋上,分页插件就已经加载完毕。

解决办法:添加

                async: false,

2.jQuery Pagination插件页面初始化时请求两次

问题截图:

原因:因为使用的是后台分页,所以初始化时需要一次请求,而jQuery Pagination插件的回调函数又请求了一次。

解决办法:调用回调函数时加上判断(加红还加粗的部分):完整代码:

$(function () {
    var isFirstLoad = true;
    var pageSize = 10; // 每页显示多少条记录
    var total;//总记录数
    Init(0);
    $("#pagination").pagination(total, {
        items_per_page: pageSize,
        callback: pageselectCallback,
        prev_text: '上一页',
        next_text: '下一页',
        num_display_entries: 4, // 连续分页主体部分显示的分页条目数
        num_edge_entries: 1, // 两侧显示的首尾分页的条目数
    });

    //点击上一页、下一页、页码的时候触发的事件
    function pageselectCallback(index, jq) { // index表示当前点击的那个分页的页数索引值-1(基0),
        // 后一个参数表示装载容器。
        isFirstLoad ? isFirstLoad = false : Init(index)
    }

    function Init(pageIndex) { // 参数就是点击的那个分页的页数索引值
        $.ajax({
            url: "/studentsign/getNoticeForS.do",
            type: "post",
            async: false,
            dataType: "json",
            data: {
                "pageNo": pageIndex + 1,//基1
                "pageSize": pageSize
            },
            success: function (data) {
                // 赋值total,用于计算
                total = data.data.total;
                console.log(total);
                $("#list").empty();
                $.each(data.data.list, function (i, item) {
                    $("#list").append("<li>" + item.title + "</li>")
                });
            },
            error: function () {
                alert("请求超时,请重试!");
            },
        });
    }
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值