jquery 页面分页的实现
<!DOCTYPE html>
<html>
<head>
<title>分页</title>
<link rel="stylesheet" type="text/css" href="./css/page.css"></style>
<script type="text/javascript" src="./js/jquery.min.js"></script>
<script type="text/javascript" src="./js/index.js"></script>
</head>
<body>
<div class="">
<div class="container" id="container" style="min-width:400px;min-height: 600px;">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){
// 创建一个分页的实例对象,利用对象中的方法进行分页
var pageone = new PageInit('qA','../test3.json');
var pageInit = pageone.createPage(); $('#container').html(pageInit);
pageone.init('../test3.json');
pageone.operator();
})
</script>
</body>
</html>
index.js文件内容
// 本例仅仅实现了页面跳转向后台传递数据,后台根据具体参数返回数据我们显示在页面上
function PageInit(className,url){
var publicVar={} ;
var tempClassName = className;
var tempUrl = url;
var totalItem;
publicVar.init = function(tempUrl){
var parInit = {
'page':1,
'pagesize':10
}
this.reloadReplies(parInit);
}
publicVar.createPage = function(){
var html = `
<div class=${tempClassName}>
<div class="data-area"></div>
<div class="center">
<table class="pageinitial" >
<tr>
<td>
<select name="pageItemNum" class ="rows" >
<option value="10">10</option>
<option value="15">15</option>
<option value="25">25</option>
<option value="50">50</option>
</select>
</td>
<td class="division"> | </td>
<td>
<a href="javascript:void(0)" class="page-first">
</a>
</td>
<td>
<a href="javascript:void(0)" class="page-prev">
</a>
</td>
<td class="division"> | </td>
<td>
page <input class="page" value="1" style="width:30px;display:inline-block;text-align:center" readonly/>
</td>
<td>
of <span class="page-total"></span>
</td>
<td class="division"> | </td>
<td>
<a class="page-next" href="javascript:void(0)">
</a>
</td>
<td>
<a href="javascript:void(0)" class="page-last">
</a>
</td>
</tr>
</table>
</div>
</div>`
return html;
};
// 绑定标签的点击函数
publicVar.operator = function(tempUrl){
var _self = this;
$('.'+tempClassName+' .page-first').click(function(e){
e.preventDefault();
pageParams = _self.curPage(tempClassName);
if(pageParams.page==maxPage){
$('.'+tempClassName+' .page-next').removeClass('page-disable');
$('.'+tempClassName+' .page-last').removeClass('page-disable');
_self.aAbled('.'+tempClassName+' .page-next');
_self.aAbled('.'+tempClassName+' .page-last'); }
if(pageParams.page>1) {
pageParams.page = 1;
$('.'+tempClassName+' .page').val(pageParams.page);
$('.'+tempClassName+' .page-total').html(maxPage);
$('.'+tempClassName+' .page-prev').addClass('page-disable');
$('.'+tempClassName+' .page-first').addClass('page-disable');
_self.aDisabled('.'+tempClassName+' .page-prev');
_self.aDisabled('.'+tempClassName+' .page-first');
_self.pagefresh(pageParams,tempUrl);
}
});
$('.'+tempClassName+' .page-prev').click(function(e){
e.preventDefault();
pageParams = _self.curPage(tempClassName);
maxPage = Math.ceil(totalItem/pageParams.pagesize);
if(pageParams.page==maxPage){
$('.'+tempClassName+' .page-next').removeClass('page-disable');
$('.'+tempClassName+' .page-last').removeClass('page-disable');
_self.aAbled('.'+tempClassName+' .page-next');
_self.aAbled('.'+tempClassName+' .page-last');
}
if(pageParams.page>1){
pageParams.page = pageParams.page-1;
if(pageParams.page==1){
$('.'+tempClassName+' .page-prev').addClass('page-disable');
$('.'+tempClassName+' .page-first').addClass('page-disable');
_self.aDisabled('.'+tempClassName+' .page-prev');
_self.aDisabled('.'+tempClassName+' .page-first');
}
$('.'+tempClassName+' .page').val(pageParams.page);
$('.'+tempClassName+' .page-total').html(maxPage);
_self.pagefresh(pageParams,tempUrl);
}
});
$('.'+tempClassName+' .page-next').click(function(e){
e.preventDefault();
pageParams = _self.curPage(tempClassName);
maxPage = Math.ceil(totalItem/pageParams.pagesize);
if(pageParams.page==1){
$('.'+tempClassName+' .page-prev').removeClass('page-disable');
$('.'+tempClassName+' .page-first').removeClass('page-disable');
_self.aAbled('.'+tempClassName+' .page-prev');
_self.aAbled('.'+tempClassName+' .page-first');
}
if(pageParams.page<maxPage){
pageParams.page = pageParams.page-1+2;
if(pageParams.page==maxPage){
$('.'+tempClassName+' .page-next').addClass('page-disable');
$('.'+tempClassName+' .page-last').addClass('page-disable');
_self.aDisabled('.'+tempClassName+' .page-next');
_self.aDisabled('.'+tempClassName+' .page-last');
}
$('.'+tempClassName+' .page').val(pageParams.page);
$('.'+tempClassName+' .page-total').html(maxPage);
_self.pagefresh(pageParams,tempUrl);
}
});
$('.'+tempClassName+' .page-last').click(function(e){
e.preventDefault();
pageParams = _self.curPage(tempClassName);
maxPage = Math.ceil(totalItem/pageParams.pagesize);
if(pageParams.page==1){
$('.'+tempClassName+' .page-prev').removeClass('page-disable');
$('.'+tempClassName+' .page-first').removeClass('page-disable');
_self.aAbled('.'+tempClassName+' .page-prev');
_self.aAbled('.'+tempClassName+' .page-first');
}
if(pageParams.page<maxPage){
maxPage = Math.ceil(totalItem/pageParams.pagesize);
pageParams.page = maxPage;
$('.'+tempClassName+' .page').val(maxPage);
$('.'+tempClassName+' .page-total').html(maxPage);
$('.'+tempClassName+' .page-next').addClass('page-disable');
$('.'+tempClassName+' .page-last').addClass('page-disable');
_self.aDisabled('.'+tempClassName+' .page-next');
_self.aDisabled('.'+tempClassName+' .page-last');
_self.pagefresh(pageParams,tempUrl);
}
});
$('.'+tempClassName+' .rows').change(function(e){
pageParams = _self.curPage(tempClassName);
maxPage = Math.ceil(totalItem/pageParams.pagesize);
$('.'+tempClassName+' .page-total').html(maxPage);
$('.'+tempClassName+' .page').val('1');
pageParams.page = $('.'+tempClassName+' .page').val();
$('.'+tempClassName+' .page-prev').addClass('page-disable');
$('.'+tempClassName+' .page-first').addClass('page-disable');
_self.aDisabled('.'+tempClassName+' .page-prev');
_self.aDisabled('.'+tempClassName+' .page-first');
if(maxPage==1){
$('.'+tempClassName+' .page-next').addClass('page-disable');
$('.'+tempClassName+' .page-last').addClass('page-disable');
_self.aDisabled('.'+tempClassName+' .page-next');
_self.aDisabled('.'+tempClassName+' .page-last');
}else{
$('.'+tempClassName+' .page-next').removeClass('page-disable');
$('.'+tempClassName+' .page-last').removeClass('page-disable');
_self.aAbled('.'+tempClassName+' .page-next');
_self.aAbled('.'+tempClassName+' .page-last');
}
_self.pagefresh(pageParams,tempUrl);
});
};
// 设置标签是否可以进行点击
publicVar.aDisabled = function(tempClassName) {
$(tempClassName).attr('disabled', true);
$(tempClassName).css('pointer-events', 'none');
};
publicVar.aAbled = function(tempClassName) {
$(tempClassName).attr('disabled', false);
$(tempClassName).css('pointer-events', 'auto');
};
// 获取当前页面信息页码页数和itemID
publicVar.curPage = function (tempClassName){
var rtn ={};
rtn.pagesize = $('.'+tempClassName+' .rows').val();
rtn.page = $('.'+tempClassName+' .page').val();
return rtn;
};
// 得到参数后刷新,可以根据不同的tempClassName来局部刷新不同的列表
publicVar.pagefresh = function (params,tempUrl){
this.reloadReplies(params,tempUrl);
};
publicVar.reloadReplies = function(pars){
_self = this;
var htmlItem ='';
var lenItem = '';
$.ajax({
url:tempUrl,
params:pars,
async: false,
success:function(data){
totalItem = data.total;
if(totalItem==0){
maxPageItem = 1;
}else{
maxPageItem = Math.ceil(totalItem/pars.pagesize);
}
if(pars.page==1){
$('.'+tempClassName+' .page-prev').addClass('page-disable');
$('.'+tempClassName+' .page-first').addClass('page-disable');
_self.aDisabled('.'+tempClassName+' .page-prev');
_self.aDisabled('.'+tempClassName+' .page-first');
}
if(pars.page==maxPageItem){
$('.'+tempClassName+' .page-next').addClass('page-disable');
$('.'+tempClassName+' .page-last').addClass('page-disable');
_self.aDisabled('.'+tempClassName+' .page-next');
_self.aDisabled('.'+tempClassName+' .page-last');
}else{
$('.'+tempClassName+' .page-next').removeClass('page-disable');
$('.'+tempClassName+' .page-last').removeClass('page-disable');
_self.aAbled('.'+tempClassName+' .page-next');
_self.aAbled('.'+tempClassName+' .page-last');
}
$('.'+tempClassName+' .page-total').html(maxPageItem);
$('.'+tempClassName+' .page').val(pars.page);
lenItem = data.List.length;
if(lenItem>0){
// data.rows.postReplys = convertTime(data.rows.postReplys);
htmlItem = _self.fn(data.List); }
$('.'+tempClassName+' .data-area').html(htmlItem);
}
});
};
// publicVar.createListItem = function(){ // }
publicVar.fn = function(item){
var html='';
for(var i=0;i<item.length;i++){
html+= '\
<div class="reply-item">\
<div class="user-portrait">\
<div class="portrait"><img src='+item[i].headIcon+'></div>\
</div>\
<div class="reply-detail">\
<div class="reply-user">'+item[i].Name+'</div>\
<div class="reply-content">'+item[i].reply_content+'</div>\
<div class="reply-last">\
<div class="reply-time">'+item[i].reply_time+'</div>\
<div class="reply-delete"><div style="color: #0011ff;width:50px;cursor:pointer" onclick="openDeleteReplyDialog()">delete</div></div>\
</div>\
</div>\
</div>\
'
}
return html;
}
return publicVar;
}


jquery 页面分页的实现的更多相关文章
- 转:精心挑选的12款优秀 jQuery Ajax 分页插件和教程
在这篇文章中,我为大家收集了12个基于 jQuery 框架的 Ajax 分页插件,这些插件都提供了详细的使用教程和演示.Ajax 技术的出现使得 Web 项目的用户体验有了极大的提高,如今借助优秀的 ...
- SpringMVC -jquery实现分页
效果图: 关键类的代码: package:utils: SpringUtil.java 通过jdbcTemplate连接oracle数据库 package com.utils; import org. ...
- 12款优秀 jQuery Ajax 分页插件和教程
12款优秀 jQuery Ajax 分页插件和教程 在这篇文章中,我为大家收集了12个基于 jQuery 框架的 Ajax 分页插件,这些插件都提供了详细的使用教程和演示.Ajax 技术的出现使得 W ...
- jquery动态分页
最近一直研究jquery的分页效果,刚刚弄好了一个,拿出来与大家分享.分页效果与时光网的差不多. 网址:http://www.mtime.com/movie/news/all/ 先在aspx页面放置一 ...
- jQuery Pagination分页插件--刷新
源码地址:https://github.com/SeaLee02/FunctionModule/blob/master/UploadFiles/WebDemo/FenYE/FenYeDemo.aspx ...
- Jquery前端分页插件pagination同步加载和异步加载
上一篇文章介绍了Jquery前端分页插件pagination的基本使用方法和使用案例,大致原理就是一次性加载所有的数据再分页.https://www.jianshu.com/p/a1b8b1db025 ...
- jQuery页面加载初始化的3种方法
jQuery 页面加载初始化的方法有3种 ,页面在加载的时候都会执行脚本,应该没什么区别,主要看习惯吧,本人觉得第二种方法最好,比较简洁. 第一种: $(document).ready(functio ...
- js jquery 页面加载初始化方法
js jquery 页面加载初始化方法 一.js页面加载初始化方法 // 1.在body里面写初始化方法. <body onload='init()'> </body> < ...
- jQuery页面滚动监听事件及高级效果插件
jQuery页面滚动监听事件及高级效果插件 1. One Page scroll (只适用于上下焦点图)http://www.thepetedesign.com/demos/onepage_scrol ...
随机推荐
- zha男/女的三种境界
本文为chedan贴,谈一谈找对象时渣男/女的三种表现,分别对应三种境界,涉世未深的男生女生可加以小心,自身属于zha类型的可略过本文. 另,本文的恋爱观基于两个原则.一是对象应是从朋友到恋人的 ...
- 晨枫U盘启动盘制作工具V4.0-安装原版Win7
第一类方法(32位64位系统通用): [1]找到Windows7系统的iso镜像,用UltraISO或者WinRAR打开iso镜像,然后提取/解压所有文件到你的U盘根目录. [2]在你的U盘里找到名为 ...
- vue 刷新当前页面
情景: 比如在删除或者增加一条记录的时候希望当前页面可以重新刷新 请求接口中直接将数组结果取第0个数组或者第n个数组给变量,会报错 0 的错误,此时多次刷新即可 方法一.这种方法简单快捷,但是页面会有 ...
- maven install安装工程
在一个项目中,想要运行一个子工程,要先把它的依赖工程导入到maven中. 右键依赖工程--run as--maven install.
- 软RAID管理命令mdadm详解
软RAID管理命令mdadm详解 mdadm是linux下用于创建和管理软件RAID的命令,是一个模式化命令.但由于现在服务器一般都带有RAID阵列卡,并且RAID阵列卡也很廉价,且由于软件RAID的 ...
- 【LeetCode每天一题】Find First and Last Position of Element in Sorted Array(找到排序数组中指定元素的开始和结束下标)
Given an array of integers nums sorted in ascending order, find the starting and ending position of ...
- [Java in NetBeans] Lesson 07. JavaDoc and Unit Tests
这个课程的参考视频和图片来自youtube. 主要学到的知识点有: 1. organize code into packages Create a package if want to make th ...
- leetcode473 Matchsticks to Square
一开始想求所有结果为target的组合来着,但是所选元素不能重叠.用这个递归思想很简单,分成四个桶,每次把元素放在任意一个桶里面,最后如果四个桶相等就可以放进去,有一个地方可以剪枝,假如任意一个桶的元 ...
- [pat]1045 Favorite Color Stripe
1.用一个数组里面存储喜爱数字的值来区分数字是不是喜爱,以及值的大小顺序,用vector循环删除a数组中不是喜爱的元素,这里it=erase()之后it自动指向下一个元素,由于循环每次还要自增1,所以 ...
- vue中输入框聚焦,自动跳转下一个输入框
比如 点击入库,el-dialog弹出来,然后自动聚焦第一个输入框,当输入框有值的时候,自动跳转下一个输入框 这个需求 直接上菜: this.$refs.lbj.focus()其实直接这么写也可以,但 ...