javascript 封装分页
最近自己做了一个后台,想把分页通过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 封装分页的更多相关文章
- JavaScript封装
js封装就是把使用方式简单化,内部逻辑和使用解耦.使用人员知道参数和返回值就可以了,其他不用使用人员设置. 封装就是将属性,方法,字段等封装成类. JavaScript封装方法 1,函数方式 func ...
- javaScript封装的各种写法
在javascript的世界里,写法是个神奇的现象,真是百家齐开放啊!每次看到老外写的js组件,思想和写法都怪异,就没看到一个js结构基本相同的代码出来.今天,我就来谈谈js写法,我在开发过程中,也写 ...
- Javascript 封装问题
Javascript 封装问题 为什么会用这样一个题目呢,这是要说封装的什么问题,本文并不讲高深的封装理论,只是解决一个小问题. 问题来源 今天在百度知道上闲逛,遇到一个网友的问题,问题如下,问题的地 ...
- 面向对象的JavaScript --- 封装
面向对象的JavaScript --- 封装 封装 封装的目的是将信息隐藏.一般而言,我们讨论的封装是封装数据和封装实现.真正的封装为更广义的封装,不仅包括封装数据和封装实现,还包括封装类型和封装变化 ...
- 【JavaScript 封装库】BETA 4.0 测试版发布!
/* 源码作者: 石不易(Louis Shi) 联系方式: http://www.shibuyi.net =============================================== ...
- 【JavaScript 封装库】BETA 3.0 测试版发布!
/* 源码作者: 石不易(Louis Shi) 联系方式: http://www.shibuyi.net =============================================== ...
- 【JavaScript 封装库】BETA 2.0 测试版发布!
/* 源码作者: 石不易(Louis Shi) 联系方式: http://www.shibuyi.net =============================================== ...
- 【JavaScript 封装库】BETA 1.0 测试版发布!
/* 源码作者: 石不易(Louis Shi) 联系方式: http://www.shibuyi.net =============================================== ...
- 【JavaScript 封装库】Prototype 原型版发布!
/* 源码作者: 石不易(Louis Shi) 联系方式: http://www.shibuyi.net =============================================== ...
随机推荐
- C# : Post 接收或发送XML
项目分成两个 web(ASP.Net)用户处理请求,客户端(wpf/winform)发送请求 1.web项目 有两个页面 SendPost.aspx(单纯发送数据给客户端) 代码: public pa ...
- 利用 Excel 公式进行数据整理
一个考勤机里导出来的数据明细: A3公式:=IF(MOD(ROW(Sheet1!U5),2)=1,Sheet1!U5,INDIRECT("Sheet1!U"&ROW(She ...
- 黄聪:WordPress: 使用 wp_insert_attachment 上传附件
我们来研究一下如何在主题或者插件的开发中上传附件: 主要参考这个函数:https://codex.wordpress.org/Function_Reference/wp_insert_attachme ...
- 【转】CSS深入理解流体特性和BFC特性下多栏自适应布局
这篇文章发布于 2015年02月12日,星期四,23:36,归类于 css相关. 阅读 30873 次, 今日 63 次 by zhangxinxu from http://www.zhangxinx ...
- XE6移动开发环境搭建之IOS篇(6):设置Mac OSX的网络。(有图有真相)
网上能找到的关于Delphi XE系列的移动开发环境的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 我们配置一下MAC的 ...
- System.exit(1)
用于退出java的虚拟机,也是finally块中语句不被执行的唯一情况
- JavaScript笔记:数据类型
javascript中有5种基本数据类型:Undefined,Null,Boolean,Number和String,还有一种复杂的数据类型--Object.javascript不支持任何创建自定义类型 ...
- thinkphp实现单图片上传
$config=array( 'maxSize' => 3145728, 'savePath' => './Public/Uploads/', 'rootPath' => './', ...
- java 枚举类 enum 总结
枚举定义: enum是计算机编程语言中的一种数据类型.枚举类型:在实际问题中,有些变量的取值被限定在一个有限的范围内.例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等.如果把这些量 ...
- linux编程中printf显示不加换行的缓冲问题
最近在编写linux网络编程时,总是遇到这样的事,程序逻辑没错误,但是程序运行到某个地方就停在那里了,后来才发现在prinrf()中加入换行能正常运行了,如“ printf("123&quo ...