由于第一次写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分页插件的更多相关文章

  1. jq分页插件

    jq分页插件 http://www.zhangxinxu.com/jq/pagination_zh/ html --------------- <tbody id="hiddenres ...

  2. jq分页插件,支持动态,静态分页的插件,简单易用。

    工作中经常要用到分页功能.为了方便封装了一个比较通用的分页插件开源出来了,简单易用. 官网:https://cwlch.github.io/Ch_Paging 下载地址:https://github. ...

  3. 自制Javascript分页插件,支持AJAX加载和URL带参跳转两种初始化方式,可用于同一页面的多个分页和不同页面的调用

    闲话部分 最近闲着实在无聊,就做了点小东西练练手,由于原来一直在用AspNetPager进行分页,而且也进行了深度的定制与原有系统整合的也不错,不过毕竟是用别人的,想着看自己能试着做出来不能,后台的分 ...

  4. jq.paginator分页插件稍加修改

    样式一: 样式二: 此分页功能在jq.paginator分页插件上稍加修改. 必加模板html: <div id="jqPaginator"> <div id=& ...

  5. [转]jQuery Pagination Ajax分页插件中文详解

    在做项目时需要用到在前端页面中需要实现分页显示的功能,类似于博客园下面的分页导航.从网上找了几个,觉得下面这个使用起来非常简单,也很方便.特在这里记录一下. 以下为文章原文. 中文项目地址:http: ...

  6. JqueryPagination 分页插件使用说明

    JqueryPagination是个简单轻量级的分页插件,使用起来很容易,只要初始化一个实例,并设置总数量.翻页回调函数.其它参数就可以实现无刷新分页功能了 1 首先引入相关js文件: <lin ...

  7. jQuery Pagination Ajax分页插件中文详解(转)

    一.相关demo 基本demo页面 Ajax demo页面 参数可编辑demo页面 二.简介与说明 此jQuery插件为Ajax分页插件,一次性加载,故分页切换时无刷新与延迟,如果数据量较大不建议用此 ...

  8. jQuery Pagination Ajax分页插件中文详解(摘)

    jQuery Pagination Ajax分页插件中文详解 by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxin ...

  9. 浅谈jQuery Pagination Ajax 分页插件的使用

    插件介绍 此插件是jQuery的ajax分页插件.分页切换时无刷新也无延迟,因为是一次性加载的.如果你用到此插件作分页的时候,涉及到的数据量大,建议不要使用此插件,因为加载慢会导致用户体验不好! 插件 ...

随机推荐

  1. ceph 问题总结已解决

    waiting for a volume to be created, either by external provisioner "ceph.com/rbd" or manua ...

  2. DateTime TryParse方法,介绍

    1.与Date.Parse()方法的区别:Date.Parse(object o)方法接受一个object类型的参数,当参数为空或转换失败时会抛出异常DateTime.TryParse方法不会抛出异常 ...

  3. 二、python数据类型详解

    基本概念 迭代(iteration):如果给定一个list或tuple,我们可以通过for循环来遍历,这种遍历我们称为迭代(iteration) 可变:value改变,id不变,可变类型是不可hash ...

  4. 【数据科学基础复习 - 3】PCA主成分分析

    本文仅就PCA原理及应用作一简单总结, 具体的数学原理等考试后再补上. 1. PCA推导 目标 对于正交空间中的样本点,现想将其投影到一个低维超平面中使得所有样本可在该平面中得到恰当的表达. 什么叫恰 ...

  5. Linux安装JDK8环境

    1.下载JDK包 点击同意下载后,会让你注册oracel账号,登录了才能下载 2.上传到linux服务器,然后解压 解压命令(注意jdk的版本名称不一定相同): tar -zxvf jdk-8u181 ...

  6. angular批量上传图片并进行校验

    最近做一个项目,有一个批量上传图片,并校验是否是图片和上传最大数量的需求.下面分享一下我的想法,欢迎大神探讨. 首先是在html中支持批量上传和接收图片(mac下设置了之后不存在类型校验),下面上ht ...

  7. C# 线程与任务

    线程 线程:对于所有需要等待的操作,例如移动文件,数据库和网络访问都需要一定的时间,此时就可以启动一个新的线程,同时完成其他任务.一个进程的多个线程可以同时运行在不同的CPU上或多核CPU的不同内核上 ...

  8. ArcGIS热点分析

    许多论文中一般会有热点分析图,ArcGIS中提供了热点分析的功能. 先看下描述:给定一组加权要素,使用 Getis-Ord Gi* 统计识别具有统计显著性的热点和冷点. 其实非常简单,今天博主就跟大家 ...

  9. 无法更新apt镜像源?树莓派安装最新版Debian11(bullseye)arm64位系统步骤

    镜像下载.域名解析.时间同步请点击阿里云开源镜像站 树莓派系统在2022年1月28日迎来了更新,更新了64位的系统,同时也有lite系统供我们使用.32位系统很多软件都用不了,特别是宝塔面板.下面是安 ...

  10. linux 查看命令

    linux查找命令 ls查看文件信息 ​ 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等 ​ 常用参数搭 ...