最近自己做了一个后台,想把分页通过js给封装起来

于是乎就有了下面的代码

此代码,算是一个半成品,还需完善,思路还是可以借鉴的

page方法传入3个参数

1、total总条数

2、page当前页码

3、seVal当前也显示的总数

page: function (total, page,seVal) {
var pageHtml = '<div class="col-lg-4 col-md-4 col-sm-12">';
pageHtml += '<div class="dataTables_info" id="datatable_info"></div></div>';
pageHtml += '<div class="col-lg-8 col-md-8 col-sm-12">';
pageHtml += '<div class="dataTables_paginate paging_bs_full" id="datatable_paginate">';
pageHtml += '<div class="page-select"> 每页记录 <select id="spage"><option value="10">10</option>';
pageHtml += '<option value="30">30</option><option value="50">50</option>';
pageHtml += '<option value="100">100</option><option value="500">500</option>';
pageHtml += '<option value="1000">1000</option></select></div>';
pageHtml += '<ul class="pagination">';
pageHtml += ' </ul>';
pageHtml += '</div>';
pageHtml += '</div>';
pageHtml += '';
$("#pageRow").html(pageHtml);
//1、下拉选择
//2、根据分页显示索引值
var starSum = (page - ) * seVal == ? : (page - ) * seVal;
var rowTip = '检索到 ' + total + ' 条记录 显示第 ' + starSum + ' 条 - ' + ((page * seVal) > total ? total : (page * seVal)) + ' 条';
$("#datatable_info").html(rowTip);
//3、计算总页数
var pageCount = Math.ceil((total * 1.0) / seVal);
var strPage = '';
//4、判断首页
if (page == ) {
strPage += '<li class="disabled"><a tabindex="0" class="first" id="datatable_first">首页</a></li>';
strPage += '<li class="disabled"><a tabindex="0" class="previous" id="datatable_previous">上一页</a></li>';
} else {
strPage += '<li><a tabindex="0" data-page="1" class="paginate_button first" id="datatable_first">首页</a></li>';
strPage += '<li class=""><a data-page="' + (parseInt(page) - ) + '" tabindex="0" class="paginate_button previous" id="datatable_previous">上一页</a></li>';
}
//5、如果总数小于制定数,循环
if (pageCount < ) {
for (var i = ; i < pageCount + ; i++) {
strPage += '<li class="' + (i == page ? 'disabled' : '') + '"><a data-page="' + i + '" class="paginate_button" tabindex="0">' + i + '</a></li>';
}
} else {
var maxfeye = parseInt(page) + ;
var minfeye = parseInt(page) - ;
if (page < ) {
maxfeye = ;
minfeye = ;
}
if (maxfeye > pageCount) {
minfeye = pageCount-;
maxfeye = pageCount;
} for (var f = minfeye; f < maxfeye+; f++) {
strPage += '<li class="' + (f == page ? 'disabled' : '') + '"><a data-page="' + f + '" class="paginate_button" tabindex="0">' + f + '</a></li>';
}
}
//6、尾页
if (page == pageCount) {
strPage += '<li class="disabled"><a tabindex="0" class="next" id="datatable_next">下一页</a></li>';
strPage += '<li class="disabled"><a tabindex="0" class="last" id="datatable_last">尾页</a></li>';
} else {
strPage += '<li class=""><a tabindex="0" data-page="' + (parseInt(page) + ) + '" class="paginate_button next" id="datatable_next">下一页</a></li>';
strPage += '<li class=""><a tabindex="0" data-page="' + pageCount + '" class="paginate_button last" id="datatable_last">尾页</a></li>';
}
$(".pagination").html(strPage);
//7、分页页码点击事件
$("a.paginate_button").on('click', function () {
fyt.initList($(this).attr("data-page"), $("#spage").val());
});
//8、每页记录下拉事件
$("#spage").on('change', function () {
fyt.initList(,$(this).val());
});
//9、给下拉框赋值
$("#spage").val(seVal);
}

最终显示截图,上图

已完成,如果谁有更好的方法,或者更好优化的地方,可以交流交流

86594082 屌丝聚集之地  你懂得

javascript 封装分页的更多相关文章

  1. JavaScript封装

    js封装就是把使用方式简单化,内部逻辑和使用解耦.使用人员知道参数和返回值就可以了,其他不用使用人员设置. 封装就是将属性,方法,字段等封装成类. JavaScript封装方法 1,函数方式 func ...

  2. javaScript封装的各种写法

    在javascript的世界里,写法是个神奇的现象,真是百家齐开放啊!每次看到老外写的js组件,思想和写法都怪异,就没看到一个js结构基本相同的代码出来.今天,我就来谈谈js写法,我在开发过程中,也写 ...

  3. Javascript 封装问题

    Javascript 封装问题 为什么会用这样一个题目呢,这是要说封装的什么问题,本文并不讲高深的封装理论,只是解决一个小问题. 问题来源 今天在百度知道上闲逛,遇到一个网友的问题,问题如下,问题的地 ...

  4. 面向对象的JavaScript --- 封装

    面向对象的JavaScript --- 封装 封装 封装的目的是将信息隐藏.一般而言,我们讨论的封装是封装数据和封装实现.真正的封装为更广义的封装,不仅包括封装数据和封装实现,还包括封装类型和封装变化 ...

  5. 【JavaScript 封装库】BETA 4.0 测试版发布!

    /* 源码作者: 石不易(Louis Shi) 联系方式: http://www.shibuyi.net =============================================== ...

  6. 【JavaScript 封装库】BETA 3.0 测试版发布!

    /* 源码作者: 石不易(Louis Shi) 联系方式: http://www.shibuyi.net =============================================== ...

  7. 【JavaScript 封装库】BETA 2.0 测试版发布!

    /* 源码作者: 石不易(Louis Shi) 联系方式: http://www.shibuyi.net =============================================== ...

  8. 【JavaScript 封装库】BETA 1.0 测试版发布!

    /* 源码作者: 石不易(Louis Shi) 联系方式: http://www.shibuyi.net =============================================== ...

  9. 【JavaScript 封装库】Prototype 原型版发布!

    /* 源码作者: 石不易(Louis Shi) 联系方式: http://www.shibuyi.net =============================================== ...

随机推荐

  1. C#:org.in2bits.MyXls 文本格式日期 转换,以及设置单元格格式,保留两位小数点

    org.in2bits.MyXls  Excel导入日期格式的处理 表格内容为 2014-7-22 ,导入后显示为 41842 等于一个数值,根本不是日期,后来百度了一下,发现要做如下处理: stri ...

  2. Eclipse 配置Activiti插件

    Eclipse 配置Activiti插件 我使用的是Eclipse LUNA 4.4.0 点击Eclipse上方工具栏[Help]选择[Install New Software] 在弹出的窗口点击[A ...

  3. Linux Install VirtualBox

    添加源: cd /etc/yum.repos.dwget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo 下面3个 ...

  4. Linux批量更改文件后缀名

    一.rename解决 1.  Ubuntu系统下 rename 's/\.c/\.h/'  ./* 把当前目录下的后缀名为.c的文件更改为.h的文件 2.  CentOS5.5系统下 rename . ...

  5. poj 1416 (hdu 1539)Shredding Company:剪枝搜索

    点击打开链接 题目大意是有一个分割机,可以把一串数字分割成若干个数字之后求和,题目输入一个数字上界和待分割的数字,让我们求出分割后数字之和在不超过给定max的情况下的最大值,并且给出分割方案,如果没有 ...

  6. [SharpZipLib 未能加载文件或程序集] 解决方法

    未能加载文件或程序集"ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6a ...

  7. 数据库的索引和填充因子fillfactor

    索引分为聚簇索引和非聚簇索引 1.聚簇索引/聚集索引 聚簇索引的顺序就是数据的物理存储顺序,对于一个表来说,只有一个聚簇索引 create unique clustered index id_inde ...

  8. css兼容问题集合

    css兼容问题 兼容问题 1.文字本身的大小不兼容.同样是font-size:14px的宋体文字,在不同浏览器下占的空间是不一样的,ie下实际占高16px,下留白3px,ff下实际占高17px,上留白 ...

  9. Egret 压缩与解压(jszip)

    一 jszip是什么 二 为什么要用jszip 三 如果使用zip 一 jszip是什么 jszip 是一个 JavaScript 库,可直接在浏览器上创建 zip 压缩档. 二 为什么要用jszip ...

  10. 【转载】shell编程——if语句 if -z -n -f -eq -ne -lt

    shell编程中条件表达式的使用 if  条件then Commandelse Commandfi                              别忘了这个结尾 If语句忘了结尾fites ...