自制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分页插件.分页切换时无刷新也无延迟,因为是一次性加载的.如果你用到此插件作分页的时候,涉及到的数据量大,建议不要使用此插件,因为加载慢会导致用户体验不好! 插件 ...
随机推荐
- XML序列化反序列化
using System; using System.Collections.Generic; using System.IO; using System.Xml.Serialization; nam ...
- LeetCode-093-复原 IP 地址
复原 IP 地址 题目描述:给定一个只包含数字的字符串,用以表示一个 IP 地址,返回所有可能从 s 获得的 有效 IP 地址 .你可以按任何顺序返回答案. 有效 IP 地址 正好由四个整数(每个整数 ...
- Pycharm新建Python项目
关于新建项目时配置项目环境(最好是每个项目单独的虚拟Python环境): Python为什么要使用虚拟环境-Python虚拟环境的安装和配置-virtualenv Pycharm创建Python项目 ...
- 关于Web的一些知识,Web怎么构成?
前端学习:学习地址:黑马程序员pink老师前端入门教程,零基础必看的h5(html5)+css3+移动,下面这些都是一些学习笔记.临渊羡鱼,不如退而结网!!愿我自己学有所成,也愿每个前端爱好者学有所成 ...
- ssl 证书配置
方式1: 1:找见域名列表 2: 主机记录 *,@,www 2:证书申请并下载 3: 4:宝塔网站ssl 参考博客: https://developer.aliyun.com/article/7714 ...
- tp5用户id登录进行权限设置
HTML代码:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- 路径查找算法应用之A*算法
环境:Visual Studio 2017 + .Net Framework 4.5 应用场景:在画板上查找起始点和目标点之间的最短最直路径,最后画出连接两个点之间的折线. 算法简介:A*算法是一种性 ...
- RENIX 软件RAW流发送——网络测试仪实操
本文主要介绍了RENIX软件如何进行RAW流发送操作.文章通过预约端口.添加RAW流.修改负载.发送流量.查看流统计.数据包捕获六个步骤详细介绍了操作过程. 步骤一:预约端口.1.先安装RENIX软件 ...
- Circle Linux镜像在阿里云镜像站首发上线
镜像下载.域名解析.时间同步请点击阿里云开源镜像站 Circle Linux简介 Circle Linux 社区是一个开源.共创的 Linux 社区,将通过完全开放.包容的社区形式与全球开发者共同构建 ...
- react中使用截图组件Cropper组件
--最近项目用react,学习react并使用cropper组件裁剪图片. (这里开发组件不够统一有用tsx(TypeScript + xml/html)写的组件,有用jsx(javascript+x ...