自己写的分页器,BOOTSTRAP+JQUERY(非完全版,后续完善)

第一步://创建几个php文件的全局变量先,后面会很多地方用到var wholePhones="selectPhones.php";var lowPowerPhones="lowPowerPhones.php";var issuePhones="issuePhones.php";var losePhones="losePhones.php";

    第二步:

// 根据不同类型sorting不同商品列表的共用的函数集合,两个参数分别表示从第几页开始查询,查询通过哪个接口    function sortPhones(page,pathUrl) {        var sumPage;        $.ajax({            type:‘GET‘,            url:‘data/‘+pathUrl+‘?page=‘+page,            success:function (result) {                var obj=JSON.parse(result);                var phones=obj.phones;                var count=obj.count;                sumPage=Math.ceil(count/20);                var html = "";                for(var i=0;i<phones.length;i++){                    // 在这里定义一下模态框触发按钮的链接目标,要跟它对应的模态框ID一样,否则点开任何一条信息弹出的都是ID=1的商品信息                    var hrefUrl=‘phoneModal‘+i;                    var phone = phones[i];                    html += `        <div class="list-group-item divItem">                <ul class="list-inline row">                    <li class="col col-md-1">${phone.id}</li>                    <li class="col col-md-1">${isLock}</li>                    <li class="col col-md-1">${phone.station_id}</li>                    <li class="col col-md-1 dropdown">                        <a href="" class="dropdown-toggle" data-toggle="dropdown">操作</a>                        <ul class="dropdown-menu">                            <li>开</li>                            <li>关</li>                            <li class="deleteCar">删除</li>                        </ul>                    </li>                    <li class="col col-md-1">                        <a href="#${hrefUrl}" data-toggle="modal">详情</a>                        <div class="modal" id="${hrefUrl}" data-backdrop="static">                            <div class="modia-dialog">                                <div class="modal-content">                                    <div class="modal-header">                                        <span class="lf">商品详情</span>                                        <span class="rf closeModal" data-dismiss="modal">关闭</span>                                    </div>                                    <div class="modal-body">                                        <div class="map">                                            <img src="imgs/map.jpg" class="img-responsive">                                        </div>

<table class="table table-stripped">                                            <thead>                                                <tr>                                                    <td><b>商品编号:&nbsp;&nbsp;&nbsp;&nbsp;${phone.id}</b></td>                                                </tr>                                            </thead>                                            <tbody>                                                <tr>                                                    <td>创建时间:</td>                                                    <td>${phone.created}</td>                                                </tr>                                                <tr>                                                    <td>更新时间:</td>                                                    <td>${phone.updated}</td>                                                </tr>                                                <tr>                                                    <td>名称:</td>                                                    <td>${phone.name}</td>                                                </tr>                                            </tbody>                                        </table>                                    </div>                                </div>                            </div>                        </div>                    </li>                </ul>            </div>                  `;                }                //没有想要sorting的商品时,显示的内容                var noSortHtml=`                <div class="list-group-item divItem">                    <ul class="list-inline row">                        <li class="col col-md-1">没有该类型的商品</li>                        <li class="col col-md-1">NA</li>                        <li class="col col-md-1">NA</li>                        <li class="col col-md-1">NA</li>                    </ul>                </div>            `;                if(phones.length<=0){$(".list-phone").html(noSortHtml)}                else{$(".list-phone").html(html)};            },            error:function (err) {                console.log(err)            }        })    }

第三步:

// 创建分页器的封装函数,重要!
    function createPage(page,pathUrl) {        var sumPage;        $.ajax({            type:‘GET‘,            url:‘data/‘+pathUrl+‘?page=‘+page,            success:function (result) {                var obj=JSON.parse(result);                var count=obj.count;                sumPage=Math.ceil(count/20);                // 将分页按钮渲染到HTML页面上                var pageHtml="<li class=‘previousPage‘><a rel=‘1‘>上一页</a></li>";                // 这个是默认激活的第一个页面,所以要单独写出来,不可以循环渲染                pageHtml+="<li class=‘active itemPage firstItem‘><a rel=‘1‘>1</a></li>";                if(sumPage>=2){                    for(var j=0;j<sumPage-1;j++){                        pageHtml+=`<li class="itemPage"><a rel=‘${j+2}‘>${j+2}</a></li>`;                    }                }                else{pageHtml+=‘‘};                pageHtml+="<li class=‘nextPage‘><a rel=‘2‘>下一页</a></li>";                $(‘.pagination‘).html(pageHtml);

// 非点击按钮触发时候,其实只要保证上一页是禁用就行了,下一页没关系,它肯定不是禁用的                if($(‘.firstItem‘).hasClass(‘active‘)){$(‘.previousPage‘).addClass(‘disabled‘)}                else{$(‘.previousPage‘).removeClass(‘disabled‘)}                if(sumPage<=1){$(‘.nextPage‘).addClass(‘disabled‘)}                // 获取1-7按钮的集合(这里以后要优化,现在是数据库只有7条数据,后续如果数据多了就不能这样了)                var list=document.querySelectorAll(‘li.itemPage‘);                //点击1-7之间的按钮时触发事件                $(list).click(function () {                    $(this).addClass(‘active‘).siblings().removeClass(‘active‘);                    if($(‘.firstItem‘).hasClass(‘active‘)){$(‘.previousPage‘).addClass(‘disabled‘)}                    else{$(‘.previousPage‘).removeClass(‘disabled‘)}                    if($(‘.nextPage‘).prev().hasClass(‘active‘)){$(‘.nextPage‘).addClass(‘disabled‘)}                    else{$(‘.nextPage‘).removeClass(‘disabled‘)}                    // 获取分页器每页对应的页数,然后点击数字,查询不同页数的内容                    var i=$(this).children(‘a‘).html();                    console.log(i);                    // 再判断条件来分页显示对应的列表信息                    // 如果是商品总列表标签激活,就到总列表的php里面查询,以此类推                    if($(‘#wholePhones‘).hasClass(‘current‘)){sortPhones(i,wholePhones)}                    if($(‘#lowPowerPhones‘).hasClass(‘current‘)){sortPhones(i,lowPowerPhones)}                    if($(‘#issuePhones‘).hasClass(‘current‘)){sortPhones(i,issuePhones)}                    if($(‘#losePhones‘).hasClass(‘current‘)){sortPhoness(i,losePhones)}                });                // 在这里需要找到当前active的元素下标,然后点击时候要重新给index再赋值,因为慢一拍,所以点击时候index要+1                var index=parseInt($(‘.pagination li.active‘).children(‘a‘).html());                // 点击上一页按钮                $(‘.previousPage‘).click(function () {                    index=parseInt($(‘.pagination li.active‘).children(‘a‘).html())+1;                    if(index<=2){$(‘.firstItem‘).addClass(‘active‘).siblings().removeClass(‘active‘)}                    else{$(‘.pagination li.active‘).prev().addClass(‘active‘).siblings().removeClass(‘active‘);}                    //当上一页按钮后的一个元素是active时,让上一页按钮禁用                    if($(‘.firstItem‘).hasClass(‘active‘)){$(‘.previousPage‘).addClass(‘disabled‘)}                    else{$(‘.previousPage‘).removeClass(‘disabled‘)}                    if($(‘.nextPage‘).prev().hasClass(‘active‘)){$(‘.nextPage‘).addClass(‘disabled‘)}                    else{$(‘.nextPage‘).removeClass(‘disabled‘)}                    // 获取分页器每页对应的页数,然后点击数字,查询不同页数的内容                    var i=$(‘.pagination li.active‘).children(‘a‘).html();                    console.log(i);                    // 再判断条件来分页显示对应的列表信息                    // 如果是商品总列表标签激活,就到总列表的php里面查询,以此类推
            if($(‘#wholePhones‘).hasClass(‘current‘)){sortPhones(i,wholePhones)}                    if($(‘#lowPowerPhones‘).hasClass(‘current‘)){sortPhones(i,lowPowerPhones)}                    if($(‘#issuePhones‘).hasClass(‘current‘)){sortPhones(i,issuePhones)}                    if($(‘#losePhones‘).hasClass(‘current‘)){sortPhones(i,losePhones)}
                });

//点击下一页按钮                $(‘.nextPage‘).click(function (e) {                    e.preventDefault();                    // 因为慢一拍,所以这里Index+1                    index=parseInt($(‘.pagination li.active‘).children(‘a‘).html())+1;                    if(index>sumPage){                        $(‘.pagination li.active‘).addClass(‘active‘).siblings().removeClass(‘active‘);                    }                    else{$(‘.pagination li.active‘).next().addClass(‘active‘).siblings().removeClass(‘active‘);}                    //当下一页按钮前的一个元素是active时,让下一页按钮禁用                    if($(‘.firstItem‘).hasClass(‘active‘)){$(‘.previousPage‘).addClass(‘disabled‘)}                    else{$(‘.previousPage‘).removeClass(‘disabled‘)}                    if($(‘.nextPage‘).prev().hasClass(‘active‘)){$(‘.nextPage‘).addClass(‘disabled‘)}                    else{$(‘.nextPage‘).removeClass(‘disabled‘)}                    // 获取分页器每页对应的页数,然后点击数字,查询不同页数的内容                    var i=$(‘.pagination li.active‘).children(‘a‘).html();                    // 再判断条件来分页显示对应的列表信息                    // 如果是车辆总列表标签激活,就到总列表的php里面查询,以此类推
             if($(‘#wholePhones‘).hasClass(‘current‘)){sortPhones(i,wholePhones)}                    if($(‘#lowPowerPhones‘).hasClass(‘current‘)){sortPhones(i,lowPowerPhones)}                    if($(‘#issuePhones‘).hasClass(‘current‘)){sortPhones(i,issuePhones)}                    if($(‘#losePhones‘).hasClass(‘current‘)){sortPhones(i,losePhones)}
                });            },            error:function (err) {                console.log(err)            }        })    }

第四步:
// 刚加载页面时显示商品总列表的分页器以及总商品列表详情,所以page和pathUrl两个参数分别是1和wholePhones,WholePhones是全部商品列表的后台接口    (function () {        if($(‘#wholePhones‘).hasClass(‘current‘)){createPage(1,wholePhones);}        sortPhones(1,wholePhones);    })();
时间: 2024-11-01 04:52:23

自己写的分页器,BOOTSTRAP+JQUERY(非完全版,后续完善)的相关文章

Asp.Net+Oracle+BootStrap+Jquery

                   Asp.Net+Oracle+BootStrap+Jquery实现简单的增删查改 概要:相信有了解过BootStrap的朋友都知道,BootStrap这家伙很强大,尽管你不是学做美工的,你都会爱上它.我这边通过一些学习写了一套前端基于BootStrap+Jquery,后端是Oracle+Ado.Net的一套简单的增删查改.我们可以一起学习. 正文,义不容辞首先来张主页面,整体的的页面布局: index.html,BootStrap可以去网上下载: <!DOC

bootstrap+jquery+mustache+springmvc+idworker整合demo代码

原文:bootstrap+jquery+mustache+springmvc+idworker整合demo代码 源代码下载地址:http://www.zuidaima.com/share/1550463719148544.htm 简单实现的一个发表评论的代码,麻雀虽小五脏俱全,请有需要的牛人下载,另外最代码决定用mustache来做js的模板. maven的工程,需要转换成dynamic web project,不会的请参考这个:如何在eclipse jee中创建Maven project并且转

自己写的一个类似于jQuery中的toggle函数

这是HTML <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>公共测试页</title> <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> <script ty

A real ROCA using Bootstrap, jQuery, Thymeleaf, Spring HATEOAS and Spring MVC

http://www.tuicool.com/articles/ENfe2u https://github.com/tobiasflohre/movie-database What is the best way to build a web application? I know, tough question, and in the end, there cannot be one definitive answer, because otherwise there wouldn’t exi

springmvc2 一个控制器写多个方法(非注解方式)

出处:http://blog.csdn.net/xuewenke/article/details/23895999 springmvc2 一个控制器写多个方法(非注解方式) 分类: spring 2014-04-17 02:50 318人阅读 评论(0) 收藏 举报 web.xml 的配置. 其实web.xml 的配置和之前的没有什么区别  主要是DispatcherServlet 的配置,他是springvc的核心,是前端拦截器,主要负责拦截请求,然后在分派.这次配置时 springmvc的配

非递归版求幂函数

#include<stdio.h> int MinSubsequenceSum(const int A[],int n) { int i,sum,MinSum; sum=MinSum=0; for(i=0;i<n;i++) { sum+=A[i]; if(sum<MinSum) MinSum=sum; if(sum>0) sum=0; } return MinSum; } void main() { int arr[10]={3,4,-2,5,-4,6,-2,8,-9,-23

购物车非cookie版

2015.11.26购物车,非cookie版 [点击来,你发现被骗了(笑哭,笑哭,笑哭,源代码的话,留下邮箱吧,是在不好找这一时半会儿的.)] Jsp通过反射机制获取bean中的标签,但其实,可以没有真实的属性与之对应.只要是符合getset方法设置的名字,就可以通过el表达式在jsp页面中获取. 更新核心代码: private void update(HttpServletRequest request, HttpServletResponse response) throws Servlet

POJ 1780 Code (欧拉回路+非递归版dfs)

题目地址:POJ 1780 还是求序列的欧拉回路.只不过这题有两坑. 第一坑是用数字来当点的话,会MLE,因为每个数字可以连10条边,100w条边会MLE,即使用vector也会TLE.这题可以用边来记录,对于n为1时直接输出,然后后面的,比如12,23这两个点就用边权值为123来表示这两个点,这样就把点和边的范围都缩小了10倍. 第二坑是用递归的dfs会爆栈,亲测即使加手扩栈也会爆..(简直丧心病狂..)需要用非递归版dfs,也不难,dfs本身就是利用的栈,所以改成栈的形式就可以了. 代码如下

SpringBoot整合Mybatis【非注解版】

接上文:SpringBoot整合Mybatis[注解版] 一.项目创建 新建一个工程 ? 选择Spring Initializr,配置JDK版本 ? 输入项目名 ? 选择构建web项目所需的staters(启动器) ? 选择与数据库相关的组件 ? 分析:Spring Boot基本上将我们实际项目开发中所遇到的所有场景都做了封装.它将所有的功能场景都抽取出来,做成了一个个的staters(启动器),只需要在项目的pom.xml配置文件里面引入这些starter相关场景的所有依赖都会导入进来.需要什

jQuery实现简易版列表联动

jQuery实现简易版列表联动 本文为学习过程中的总结,也许许多地方可能过于片面,考虑不周全,还望前辈们评论区批评指正呐! 简易版三级联动效果如下: 代码如下: <!DOCTYPE HTML> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title&g