封装与后台交互且分页的函数(利用jquery)

这里我把请求封装成一个对象,使用post传递。其实使用get方式传递,在url上当作参数传递方式更为简单。思路相同,只是传递方式不同。

function connect(request){
            $.ajax('question/find',{
                'data':request,
                'method':'POST',
                'content-Type':'application/json',
                success:function(data){
                    //分页显示函数封装
                    getPage(1);
                    function getPage(beginRow){
                        $('tbody').empty();
                        var totalRows = 0;
                        data.forEach(function(item,index){
                            totalRows = index+1;
                        });
                        var nowRow = 4;
                        $('.goPage span').remove();
                        data.forEach(function(item,index){
                            //分页显示
                            $('.goPage span').remove();
                            var endRow = beginRow+(nowRow-1);
                            $('.goPage').append('<span>共有'+totalRows+'条记录</span>');
                            var totalPage = Math.ceil(totalRows/nowRow);
                            var nowPage = (beginRow+(nowRow-1))/nowRow;//当前页数
                            $('.goPage').append(' <span>当前在第'+nowPage+'页</span>');
                            if(item.type == '单选' ||item.type == '多选'){
                                var flag = item.name.indexOf('A');
                                name = item.name.slice(0,flag);
                            }else{
                                name = item.name;
                            }
                            if(beginRow<=(index+1)&&(index+1)<=endRow){
                                var newTr = $('<tr>'
                                    +'<td><input type="checkbox" value="'+item.id+'"></td>'
                                    +'<td>'+name+'</td>'
                                    +'<td>'+item.type+'</td>'
                                    +'<td>'+item.credit+'</td>'
                                    +'<td>'+item.difficulty+'</td>'
                                    +'<td>'+item.knowledge+'</td>'
                                    +'<td>'+item.direction+'</td>'
                                    +'</tr>');
                                $('tbody').append(newTr);
                            }
                            if(nowPage == 1){
                                $('.goPage').append('<span>首页</span>');
                                $('.goPage').append('<span>上一页</span>');
                            }else{
                                $('.goPage').append('<span style="color:blue">首页</span>');
                                $('.goPage').append('<span style="color:blue">上一页</span>');
                            }
                            if(nowPage == totalPage){
                                $('.goPage').append('<span>下一页</span>');
                                $('.goPage').append('<span>尾页</span>');
                            }else{
                                $('.goPage').append('<span style="color:blue">下一页</span>');
                                $('.goPage').append('<span style="color:blue">尾页</span>');
                            }
                            $('.goPage span').eq(2).on('click',function(){
                                getPage(1);
                            });
                            $('.goPage span').eq(3).on('click',function(){
                                getPage(beginRow-nowRow);
                            });
                            $('.goPage span').eq(4).on('click',function(){
                                getPage(beginRow+nowRow);
                            });
                            $('.goPage span').eq(5).on('click',function(){
                                getPage((totalPage-1)*nowRow+1);
                            }); 
                        })
                    } 
                }
            })
        }

其中,request为请求体,即请求后台数据所需要发送的数据。
我是用的span标签当作按钮,所以有个bug就是到了最后一页和第一页时点击还是会继续累加或者减。大神可以给我修改意见,谢谢!

//传递筛选条件
        var tx;
        var direction;
        var knowledge;
        var hard;
        var request = {};
        //加载获取题库
        connect(request);

此为调用分页函数所传递的参数。其中每页条数等数据可以自行修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值