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 =============================================== ...
随机推荐
- js中this的问题
Javascript的this用法 this是Javascript语言的一个关键字. 它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用.比如, function test(){ ; } 随 ...
- Discuz有关问题解决办法汇总
1.Can not write to cache files, please check directory ./data/ and ./data/cache/ . 无法写入缓存 解决办法:在sour ...
- 每天一个Linux命令
每天一个Linux命令(1):ls命令 每天一个Linux命令(2):cd命令 每天一个Linux命令(3):pwd命令 每天一个 Linux 命令(4):mkdir 每天一个 Linux 命令(5) ...
- CRM Xrm.Page 的对象层次结构
- django model 中class meta
class Meta: ordering = ['-num', 'length'] verbose_name = 'name' verbose_name_plural = 'names' orderi ...
- jsp动作标签概述
*Jsp动作标签概述: >动作标签的作用是用来简化java脚本 >jsp动作标签是JavaWeb内置的动作标签,它们是已经定义好的动作标签,我们可以拿来直接使用. >JavaWeb一 ...
- 新书发布《大数据时代的IT架构设计》
<大数据时代的IT架构设计>以大数据时代为背景,邀请著名企业中的一线架构师,结合工作中的实际案例展开与架构相关的讨论.<大数据时代的IT架构设计>作者来自互联网.教育.传统行业 ...
- NHibernate系列文章六:NHibernate数据类型映射
摘要 NHibernate支持所有的数据库数据类型. 以SQL Server数据库为例,下表是NHibernate支持的SQL Server数据库最常见的数据类型对照表. 第一列是NHibernate ...
- MFC的自定义消息的定义与使用
自定义消息的响应和资源消息的响应有很多类似之处:资源消息的响应是以资源的ID号作为标识的:自定义的消息要自己声明消息ID. 一. 定义: 第一步要声明消息: #define WM_ ...
- 设置表格td宽度
CSS布局,表格宽度不听使唤的实例.想把表格第一例宽度设为20,其他自适应.但CSS中宽度是等宽的.只设这一行也不起作用.但是在实际应用中总是等宽处理,并不按照样式来走. XML/HTML代码 & ...