自制jq分页插件
由于第一次写jq插件,中间有借鉴别人的代码。
(function(){
var ms = {
fillHtml: function(obj, option) {
obj.empty();
var totalPage = option.pageCount,
pageHtml = "",
dotHtml = "<li><a>...</a></li>",
tempHtml = "";
if (option.currentPage > 5) {
tempHtml = "<li><a class=page-num>1</a></li><li><a class=page-num>2</a></li><li><a>...</a></li>";
for(var i = option.currentPage - 2 ; i <= (option.currentPage + 2 > totalPage ? totalPage : option.currentPage + 2); i++) {
var temp = "<li><a class=page-num>" +i+ "</a></li>";
if (option.currentPage === i ) {
temp = '<li class="current-page"><a href class=page-num>'+ i +'</a></li>';
}
if (option.currentPage >= totalPage - 2) {
dotHtml = "";
}
pageHtml += temp;
};
}else {
for(var i = 1; i <= ( 6 > totalPage ? totalPage : 6); i++) {
var temp = "<li><a class=page-num>" +i+ "</a></li>";
if (option.currentPage === i ) { //添加选中蓝色背景
temp = '<li class="current-page"><a class=page-num>'+ i +'</a></li>';
};
if (option.currentPage >= totalPage - 2) {
dotHtml = "";
}
pageHtml += temp;
};
}
pageHtml = '<ul>'+
'<li class="prev-page"><a>上一页</a></li>' + tempHtml +
pageHtml + dotHtml +
'<li class="next-page"><a>下一页</a></li></ul>';
obj.append(pageHtml);
},
bindEvent: function(obj, option) {
$(obj).on("click",".page-num",function(){
if ($(this).parent("li") && $(this).parent("li").hasClass('current-page')) {
return;
}
var current = Number( $(this).text() ); //点击的页数
ms.fillHtml(obj, {"currentPage": current, "pageCount": option.pageCount});
option.backFunction();
});
$(obj).on("click",".next-page",function(){
var current = Number( $(".current-page a").text() ); //下一页
if (current === option.pageCount){
return;
}
ms.fillHtml(obj, {"currentPage": current + 1, "pageCount": option.pageCount});
option.backFunction();
});
$(obj).on("click",".prev-page",function(){
var current = Number( $(".current-page a").text() ); //上一页
if (current === 1){
return;
}
ms.fillHtml(obj, {"currentPage": current-1, "pageCount": option.pageCount});
option.backFunction();
});
},
init: function(obj, option){
return (function(){
ms.fillHtml(obj, option);
ms.bindEvent(obj, option);
})();
}
};
$.fn.creatPage = function(option) {
var initOption = {
pageCount: 10,
currentPage: 1,
backFunction: function(){}
};
option.pageCount = Number(option.pageCount);
option.currentPage = Number(option.currentPage);
var option = $.extend(initOption, option);
ms.init(this, option);
}
})()
HTML
<div class="mod-page-cont" id="pageCont">
</div>
用法
$("#pageCont").creatPage({
pageCount: 18, //总页数
currentPage: 1, //当前选中页
backFunction: function(){ //回调函数
}
});自制jq分页插件的更多相关文章
- jq分页插件
jq分页插件 http://www.zhangxinxu.com/jq/pagination_zh/ html --------------- <tbody id="hiddenres ...
- jq分页插件,支持动态,静态分页的插件,简单易用。
工作中经常要用到分页功能.为了方便封装了一个比较通用的分页插件开源出来了,简单易用. 官网:https://cwlch.github.io/Ch_Paging 下载地址:https://github. ...
- 自制Javascript分页插件,支持AJAX加载和URL带参跳转两种初始化方式,可用于同一页面的多个分页和不同页面的调用
闲话部分 最近闲着实在无聊,就做了点小东西练练手,由于原来一直在用AspNetPager进行分页,而且也进行了深度的定制与原有系统整合的也不错,不过毕竟是用别人的,想着看自己能试着做出来不能,后台的分 ...
- jq.paginator分页插件稍加修改
样式一: 样式二: 此分页功能在jq.paginator分页插件上稍加修改. 必加模板html: <div id="jqPaginator"> <div id=& ...
- [转]jQuery Pagination Ajax分页插件中文详解
在做项目时需要用到在前端页面中需要实现分页显示的功能,类似于博客园下面的分页导航.从网上找了几个,觉得下面这个使用起来非常简单,也很方便.特在这里记录一下. 以下为文章原文. 中文项目地址:http: ...
- JqueryPagination 分页插件使用说明
JqueryPagination是个简单轻量级的分页插件,使用起来很容易,只要初始化一个实例,并设置总数量.翻页回调函数.其它参数就可以实现无刷新分页功能了 1 首先引入相关js文件: <lin ...
- jQuery Pagination Ajax分页插件中文详解(转)
一.相关demo 基本demo页面 Ajax demo页面 参数可编辑demo页面 二.简介与说明 此jQuery插件为Ajax分页插件,一次性加载,故分页切换时无刷新与延迟,如果数据量较大不建议用此 ...
- jQuery Pagination Ajax分页插件中文详解(摘)
jQuery Pagination Ajax分页插件中文详解 by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxin ...
- 浅谈jQuery Pagination Ajax 分页插件的使用
插件介绍 此插件是jQuery的ajax分页插件.分页切换时无刷新也无延迟,因为是一次性加载的.如果你用到此插件作分页的时候,涉及到的数据量大,建议不要使用此插件,因为加载慢会导致用户体验不好! 插件 ...
随机推荐
- 普通web整合quartz跑定时任务
一.场景(什么时候用到定时任务) 文件跑批,定时处理数据,和业务解耦的场景 二.目前都有哪些工具可以定时处理数据 1.jdk的timertask:数据量小的情况下,单线程的 2.kettle:比较适合 ...
- Python简单入门心得(一)
很久之前就对Python感兴趣了,但是一直没时间学习,最近两天还有点时间,于是网上看了下视频,Python不愧是强类型的编程语言,对每一行的缩进的都有很严格的要求,比如一个判断,如果条件语句else不 ...
- 两天两夜,1M图片优化到100kb!
坦白从宽吧,我就是那个花了两天两夜把 1M 图片优化到 100kb 的家伙--王小二! 自从因为一篇报道登上热搜后,我差点抑郁,每天要靠 50 片安眠药才能入睡. 网络上曝光的那些关于一码通的消息,有 ...
- mysql中MyISAM与InooDB存储引擎的区别
MyISAM存储引擎特点 不支持事务 表级锁定 读写相互阻塞,写入不能读,读时不能写 只缓存索引 不支持外键约束 不支持聚簇索引 读取数据较快,占用资源较少 不支持MVCC(多版本并发控制机制)高并发 ...
- thinkphp6的一些用法
Thinkphp6笔记一:安装http://www.thinkphp.cn/topic/68371.htmlThinkphp6笔记二:开启多应用模式http://www.thinkphp.cn/top ...
- 微信请求tp5框架数据 及渲染数据至页面
tp模型数据: namespace app\xcx\model; use think\Model; class XcxModel extends Model { //链接数据库表名 protected ...
- yum安装zabbix-web-mysql出现[Errno 256] No more mirrors to try.
yum安装zabbix-web-mysql出现[Errno 256] No more mirrors to try.报错在CentOS7.X 使用yum 安装软件的时候 出现错误[Errno 256] ...
- webug 4.0 打靶笔记-01
webug 4.0 打靶笔记 1. 显错注入 1.1 访问靶场 1.2 判断注入点 查找一切有参数传入的地方进行测试,注意到有get传参?id=1 猜测后台php中sql语句模板可能为如下几种情况 $ ...
- 『现学现忘』Docker基础 — 28、Docker容器数据卷介绍
目录 1.什么是Docker容器数据卷 2.数据卷的作用 3.数据卷的使用 1.什么是Docker容器数据卷 Docker容器数据卷,即Docker Volume(卷). 当Docker容器运行的时候 ...
- Spfa 求含负权边的最短路 + 判断是否存在负权回路
在Bellman-Ford算法之后,我们总算迎来了spfa算法,其实就如同堆优化Dijkstra算法之于朴素版Dijkstra算法,spfa算法仅仅是对Bellman-Ford算法的一种优化,但是在形 ...