最近在用一款来自网易的javascript MVC 框架regularJS来写项目,这是网易一位叫郑海波的大神写的一款框架,所谓regualrJS, 作者这样取名主要是因为这个框架更像是angular与react的集合体,按照作者的话说大概是regular = react(ractive) + angular,此框架对于我来说最好用的特点是模板对于数据的渲染。同时框架支持引入其他类似于jquery,zepto等轻量级前端框架。关于regular框架我就不多说了,有兴趣的同学,可以访问https://sdk.cn/news/2927这个地址,里面是作者自己分享的关于regular的种种特性。讲解很详细,让我受益良多。

今天我们主要来说一款分页插件pagation.js,这款框架是基于jquery的,如果有同学的代码是直接基于jquery的话,建议大家访问http://www.jq22.com/jquery-info5697此地址。写这款插件的作者在里面进行了详细的描述。

下面我主要针对regularJs 这款框架如何使用进行简单的讲解。

首先引入js  http://106.2.44.116/src/javascript/base/jquery.pagination.js

我的项目是基于freemarker写的。在ftl 文件中引入js ,同时在ftl文件初始化

1     <div id="container" class="container">
//container 为插入页面的盒子
</div>
<div class="box" style="height:20px;">
</div>
<script src="/src/javascript/base/regular.js"></script>
<script src="/nej/src/define.js?pro=/src/javascript/&module=/src/html/"></script>
<script src="/src/javascript/admin.js?v=20170419"></script>

在container中插入整个regalar模板,box则是分页的盒子

接下来我们可以在模板js里单独写一个方法,用来展示分页,如下完成初始化:

  PaginationSearch:function(){//regular 写方法的基本结构
var that = this;
$('.box').pagination({
totalData:that.data.total,//总条数
showData:15,//每页展示条数
coping:true,//开启首页和末页
jump:true,//开启跳转
keepShowPN:true,//一直显示上一页和下一页,不消失
homePage:'首页',//首页节点展示的文字信息
endPage:'末页',//末页节点展示的文字信息
prevContent:'上页',//上一页节点展示的文字信息
nextContent:'下页',//下一页节点展示的文字信息
callback:function(api){//点击节点后进行的回调
$('.now').text(api.getCurrent()); },function(api){//初始化完成后进行的回调
$('.now').text(api.getCurrent()); });
}

其中分页的属性设置在对象中一一设置就好了,callback可以写点击页码后的操作,回调function为初始化显示分页后进行的操作,之后会对这两个方法进行详解

options(参数配置)

参数 默认值 说明
pageCount 9 总页数
totalData 0 数据总条数
current 1 当前第几页
showData 0 每页显示的条数
prevCls 'prev' 上一页class
nextCls 'next' 下一页class
prevContent '<' 上一页节点内容
nextContent '>' 下一页节点内容
activeCls 'active' 当前页选中状态class名
count 3 当前选中页前后页数
coping false 是否开启首页和末页,值为boolean
isHide false 总页数为0或1时隐藏分页控件
keepShowPN false 是否一直显示上一页下一页
homePage '' 首页节点内容,默认为空
endPage '' 尾页节点内容,默认为空
jump false 是否开启跳转到指定页数,值为boolean类型
jumpIptCls 'jump-ipt' 文本框内容
jumpBtnCls 'jump-btn' 跳转按钮class
jumpBtn '跳转' 跳转按钮文本内容
callback function(){} 回调函数,参数"index"为当前页

api接口

方法 参数 说明
getPageCount() 获取总页数
setPageCount(page) page:页数 设置总页数
getCurrent() 获取当前页
filling() 填充数据,参数为页数

如果你的分页是和后端有交互的分页,可以在callback函数中发异步请求请求分页数据

 
  PaginationSearch:function(){
var that = this;
$('.box').pagination({
totalData:that.data.total,
showData:15,
coping:true,
jump:true,
keepShowPN:true,
homePage:'首页',
endPage:'末页',
prevContent:'上页',
nextContent:'下页',
callback:function(api){
$('.now').text(api.getCurrent()); var postParams = {//请求参数
pageSize: 15,//每页15条
currPage:api.getCurrent(),//当前页
};
xdr._$request('/workcardadmin/search.do', {//此方法的异步请求是nej的。也可以用$.ajax()的方式
method: 'POST',
type: 'JSON',
timeout: 5000,
data: _u._$object2query(postParams),
onbeforerequest:function() {
that.data.load = true;
},
onload: function(data) {//相当于jquery的success
if (data.code === 200){
setTimeout(function(){
that.data.load = false;
if(data.data == null){
}else{
$(".box").show();
that.data.auditList=data.data.list;//获取到的数据
that.data.total = data.data.totalCount;//获取到的数据 }
that.$update();
},100); } },
onerror: function() {
alert("网络繁忙,请稍后再试"); }
}); }
},function(api){
$('.now').text(api.getCurrent()); });
},

代码中进行了注释,其中有一点。api.current()是当前页码

接下来说一下回调函数的作用,顾名思义,这个function的作用其实就是初始化分页展示完成,没有进行任何操作时希望进行的操作,比如进行样式操作。获取当前页码比较操作等

function(api){
$('.now').text(api.getCurrent());
if(api.getCurrent()!=1){
$('.prev').css({
'background':'#305fa7',
'color':'#fff'
}); }
if(api.getCurrent() != api.getPageCount()){
$('.next').css({
'background':'#305fa7',
'color':'#fff'
})
}
$('.jump-btn').css({
'background':'#305fa7',
'color':'#fff'
});
});

上面代码是判断当前页如果不是第一页,则上一页的样式变化,不是最后一页则最后一页样式变化

至此,关于此插件的操作大概就说完了。当然如果你想多次重复调用展示页码也是可以的,只需要把每个点击页码的回调函数中地址,参数都用变量存储随时复制就好了,regular中可以不用var 来存储声明一个变量,在init得data中声明,下面用 this.data.名字来调用就可以啦。设置方式

 data: {
audit:false
}

调用方式:

this.data.audit

顺便提一句 这个分页插件是组件样式与功能分离的,可自定义样式,具体样式无需引用什么,直接在css中修改就可以了

好了。我想分享的大概就是这些,解释的不清楚,话语啰嗦请大家海涵。有问题也可以评论问我。希望这篇文章可以对大家有所帮助。

一款好用的分页插件用于regularJS的更多相关文章

  1. 精心挑选的12款优秀 jQuery Ajax 分页插件和教程

    在这篇文章中,我为大家收集了12个基于 jQuery 框架的 Ajax 分页插件,这些插件都提供了详细的使用教程和演示.Ajax 技术的出现使得 Web 项目的用户体验有了极大的提高,如今借助优秀的  ...

  2. 转:精心挑选的12款优秀 jQuery Ajax 分页插件和教程

    在这篇文章中,我为大家收集了12个基于 jQuery 框架的 Ajax 分页插件,这些插件都提供了详细的使用教程和演示.Ajax 技术的出现使得 Web 项目的用户体验有了极大的提高,如今借助优秀的  ...

  3. 12款优秀 jQuery Ajax 分页插件和教程

    12款优秀 jQuery Ajax 分页插件和教程 在这篇文章中,我为大家收集了12个基于 jQuery 框架的 Ajax 分页插件,这些插件都提供了详细的使用教程和演示.Ajax 技术的出现使得 W ...

  4. 12款优秀jQuery Ajax分页插件和教程

    在这篇文章中,我为大家收集了12个基于 jQuery 框架的 Ajax 分页插件,这些插件都提供了详细的使用教程和演示.Ajax 技术的出现使得 Web 项目的用户体验有了极大的提高,如今借助优秀的 ...

  5. 一款不错的jQuery分页插件--pagination

    一.前言: 分页功能在项目中时常用到,一款可以快速实现分页功能的插件非常有必要,pagination--这款插件功能非常完美,几乎我所有项目中使用到分页的地方都会第一时间考虑到这个插件,但是其实有能力 ...

  6. 一款基于jQuery的分页插件

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  7. 让网站动起来!12款优秀的 jQuery 动画插件推荐

    如今,大多数设计师和开发人员被要客户要求开发动态的网站.创造视觉震撼和醒目的动态网站是艰巨的任务,因为它需要大量的努力和创造力.在网络上有大量的工具和插件可用于创建网站动画.许多开发人员正在使用 HT ...

  8. Mybatis分页插件PageHelper的学习与使用

    目录 中文教程 PageHelper使用 后端程序员都知道,在Web系统中,分页是一种常见的功能,我之前写的分页方法都比较麻烦,移植性也不高,这就很不乐观了.作为一个积极开朗的程序员,怎么能不去了解P ...

  9. mybatis分页插件PageHelp的使用

    1.简介 ​ PageHelper 是国内非常优秀的一款开源的 mybatis 分页插件,它支持基本主流与常用的数据库,例如 mysql.oracle.mariaDB.DB2.SQLite.Hsqld ...

随机推荐

  1. 版本控制器——Egit使用方法

    什么是Git Gitv是目前世界上最先进的分布式版本控制系统. 那我们为什么需要学习Git呢?因为在我们传统的java自学中,所有的项目都是自己独立开发完成,而且项目基本都是小型项目,在优化和体验上往 ...

  2. (六)javascriptJS中定义对象的几种方式(转)

    JavaScript学习12 JS中定义对象的几种方式 转自:  http://www.cnblogs.com/mengdd/p/3697255.html JavaScript中没有类的概念,只有对象 ...

  3. 模拟Struts2框架Action的实现

    1.具体项目结构如下:

  4. Mditor 发布「桌面版」了 - http://mditor.com

    简单说明 Mditor 最早只有「组件版」,随着「桌面版」的发布,Mditor 目前有两个版本: 可嵌入到任意 Web 应用的 Embed 版本,这是一桌面版的基础,Repo: https://git ...

  5. 队列工厂之RabbitMQ

    本次和大家分享的是RabbitMQ队列的用法,前一篇文章队列工厂之(MSMQ)中在描述的时候已经搭建了简单工厂,因此本章内容是在其之上扩充的子项不再过多讲解工厂的代码了:RabbitMQ应该是现在互联 ...

  6. 基于定位下拉框或者需要点击link才显示的下拉框,二次定位与多次定位实现的实际效果区别

    还是基于上次那个练习的后续出现的思考,http://www.cnblogs.com/8013-cmf/p/6555790.html 界面: 源码: 写法如下:  继续解释这两种的区别: 1.其实基于定 ...

  7. Build your own linino system 编译你自己的linino系统

    懒癌犯了,先简单写过程,之后有时间再补上每一步的理由吧.对着来一遍,有bug请留言,我会尝试回答.(づ ̄ 3 ̄)づ ------------------------------------------ ...

  8. [TPYBoard - Micropython 之会python就能做硬件 9] 五分种学会用TPYBoard V102 制作避障小车(升级版)

    转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 感谢山东萝卜电子科技公司授权   一.实验器材 1.TPYboard V102板 ...

  9. Spring定时任务解决博客缓存数据更新问题

    最近在做博客系统的时候,由于很多页面都有右边侧边栏,内容包括博客分类信息,归档日志,热门文章,标签列表等,为了不想每次访问页面都去查询数据库,因为本身这些东西相对来说是比较固定的,但是也有可能在网站后 ...

  10. spring(二) AOP之AspectJ框架的使用

    前面讲解了spring的特性之一,IOC(控制反转),因为有了IOC,所以我们都不需要自己new对象了,想要什么,spring就给什么.而今天要学习spring的第二个重点,AOP.一篇讲解不完,所以 ...