jquery.pagination.js+Ajax动态分页

jquery.pagination.js+Ajax动态分页

首先引入jquery组件 jquery.pagination.js,以及css样式pagination.css

 <link rel="stylesheet" type="text/css" href="css/pagination.css" />
 <script src="./jquery.pagination.js"></script>
 <script src="jquery.js"></script>

HTML代码

<div class="setPageDiv">
	<div class="Pagination" id="pagination"></div>
</div>

调用组件jquery.pagination.js的js代码

$('.Pagination').pagination(pageNum, {
			num_edge_entries: 1, //边缘页数
			num_display_entries: 4, //主体页数
			items_per_page: 1, //每页显示1项
			prev_text: "上一页",
			next_text: "下一页",
			current_page: 0,
			callback: function(index) {//翻页触发
				console.log("当前页码数"+index);
			}
		})

可用参数如下表:
options(参数配置)

参数默认值说明
pageCount9总页数
totalData0数据总条数
current1当前第几页
showData0每页显示的条数
prevCls‘prev’上一页class
nextCls‘next’下一页class
prevContent‘<’上一页节点内容
nextContent‘>’下一页节点内容
activeCls‘active’当前页选中状态class名
count3当前选中页前后页数
copingfalse是否开启首页和末页,值为boolean
isHidefalse总页数为0或1时隐藏分页控件
keepShowPNfalse是否一直显示上一页下一页
homePage’ ’首页节点内容,默认为空
endPage‘’尾页节点内容,默认为空
jumpfalse是否开启跳转到指定页数,值为boolean类型
jumpIptCls‘jump-ipt’文本框内容
jumpBtnCls‘jump-btn’跳转按钮class
jumpBtn‘跳转’跳转按钮文本内容
callbackfunction(){}回调函数,参数"index"为当前页

用Ajax发起请求获取当前总的数据条数

$.ajax({
			url: 'data/page.json',
			//type: 'GET',
			type:'POST',
			dataType: 'json',
			success: function(data) {
				var dataL = data.list.length;//总条数
				console.log("总条数:"+dataL);
			}
	})

在Ajax请求成功的回调函数里调用jquery.pagination.js

$.ajax({
			url: 'data/page.json',
			//type: 'GET',
			type:'POST',
			dataType: 'json',
			success: function(data) {
				//1.计算分页数量
				var showNum = num; //每页条数
				var dataL = data.list.length;//总条数
				var pageNum = Math.ceil(dataL / showNum);//总页数
				$('.Pagination').pagination(pageNum, {
						num_edge_entries: 1, //边缘页数
						num_display_entries: 4, //主体页数
						items_per_page: 1, //每页显示1项
						prev_text: "上一页",
						next_text: "下一页",
						current_page: 0,
						callback: function(index) {
							console.log("成功触发!");
						}
					})
			}
	})

在翻页时进行Ajax请求

第一次Ajax请求只获取了第一页的数据,在点击其他页码的时候还要再次对后台发起Ajax请求,避免一次请求的数据过多,分担服务器压力。

$.ajax({
			url: 'data/page.json',
			//type: 'GET',
			type:'POST',
			dataType: 'json',
			success: function(data) {
				//1.计算分页数量
				var showNum = num; //每页条数
				var dataL = data.list.length;//总条数
				var pageNum = Math.ceil(dataL / showNum);//总页数
				$('.Pagination').pagination(pageNum, {
						num_edge_entries: 1, //边缘页数
						num_display_entries: 4, //主体页数
						items_per_page: 1, //每页显示1项
						prev_text: "上一页",
						next_text: "下一页",
						current_page: 0,
						callback: function(index) {
							$.ajax({
									url: 'data/page.json',
									type: 'GET',
									type: 'POST',
									data:{
									 	"pageSize":5,
										"pageNum":index
									},
									dataType: 'json',
									success: function(data) {
										console.log("请求成功!");
									}
							})
						}
					})
			}
	})

完整js代码

$(function() {
					function getMsg(num) {
						$.ajax({
							url: 'data/page.json',
							//type: 'GET',
							type:'POST',
							dataType: 'json',
							success: function(data) {
								//1.计算分页数量
								var showNum = num; //每页条数
								var dataL = data.list.length;//总条数
								var pageNum = Math.ceil(dataL / showNum);//总页数
								var html = "";
								for(var i = showNum ; i < showNum ; i++) {
									if(i < dataL) {
										var state = data.list[i].state;
										var news = data.list[i].news;
										var id = data.list[i].id; //交易类型
										html +="<tr class='text-c'>"
											html +="<td><input type='checkbox' value='"+id+"'></td>"
											html +="<td>"+id+"</td>"								
											html +="<td>"+state+"</td>"
											html +="<td class='td-status'><span class='label radius'>已停用</span></td>"
											html +="<td class='td-manage'><a style='text-decoration:none' onClick=\"corporateAuditing_start(this,'10001')\" href='javascript:;' title='启用'><i class='Hui-iconfont'>&#xe615;</i></a></td>"
											html +="<td>"+news+"</td>"
											html +="<td> <a title='删除' href='javascript:;' οnclick=\"corporateAuditing_del(this,'1')\" class='ml-5' style='text-decoration:none'><i class='Hui-iconfont'>&#xe6e2;</i></a></td>"
										    html +="</tr>"	
										
									}
								}
										
								$('.list').html(html)
								// return pageNum;
								$('.Pagination').pagination(pageNum, {
									num_edge_entries: 1, //边缘页数
									num_display_entries: 4, //主体页数
									items_per_page: 1, //每页显示1项
									prev_text: "上一页",
									next_text: "下一页",
									current_page: 0,
									callback: function(index) {
										$.ajax({
											url: 'data/page.json',
											//type: 'GET',
											 type: 'POST',
											data:{
													"pageSize":5,
											 		"pageNum":index
											 	},
											dataType: 'json',
											success: function(data) {
												var html = "";
												console.log(index);
												for(var i = showNum * index; i < showNum * index + showNum; i++) {
													if(i < dataL) {
														var state = data.list[i].state;
														var news = data.list[i].news;
														var id = data.list[i].id; //交易类型
														html +="<tr class='text-c'>"
															html +="<td><input type='checkbox' value='"+id+"'></td>"
															html +="<td>"+id+"</td>"								
															html +="<td>"+state+"</td>"
															html +="<td class='td-status'><span class='label radius'>已停用</span></td>"
															html +="<td class='td-manage'><a style='text-decoration:none' onClick=\"corporateAuditing_start(this,'10001')\" href='javascript:;' title='启用'><i class='Hui-iconfont'>&#xe615;</i></a></td>"
															html +="<td>"+news+"</td>"
															html +="<td> <a title='删除' href='javascript:;' οnclick=\"corporateAuditing_del(this,'1')\" class='ml-5' style='text-decoration:none'><i class='Hui-iconfont'>&#xe6e2;</i></a></td>"
															html +="</tr>"	
														
													}
												}
				
												$('.list').html(html)
												// return pageNum;
											},
											})
										}
								})
		
							}
						})
					}
					getMsg(5)
				})

效果图:
在这里插入图片描述

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你在使用 ZUI 分页插件时遇到错误 "$(…).pagination is not a function",通常是因为你没有正确引入和初始化分页插件。以下是一些常见原因和解决方法: 1. 确保正确引入 ZUI 分页插件的 JavaScript 文件。通常,你需要在 HTML 文件中引入 ZUI 分页插件的 JavaScript 文件,确保路径和文件名正确。 ```html <script src="path/to/zui.pagination.js"></script> ``` 请根据你实际的文件路径和文件名进行相应的调整。 2. 确保在正确的时机初始化分页插件。通常,你需要在页面加载完成后执行初始化操作。可以将初始化代码放在 `<script>` 标签中,或者使用 `$(document).ready()` 或类似的方法来确保在 DOM 加载完成后执行。 ```html <script> $(document).ready(function() { $('#pagination').pagination(); // 初始化分页插件 }); </script> ``` 在上述代码中,我们使用 `$(document).ready()` 方法来确保在页面加载完成后执行初始化操作。`#pagination` 是分页插件所在的 HTML 元素的选择器。 3. 确保你已经正确加载了 jQuery。ZUI 分页插件依赖于 jQuery 库,因此在使用分页插件之前,你需要先引入 jQuery。 ```html <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> ``` 请确保引入的 jQuery 文件路径正确,或者使用其他适合你的方式引入 jQuery。 如果你仍然遇到 "$(…).pagination is not a function" 错误,请确保你的文件路径和代码正确,并尝试在浏览器的开发者工具中查看是否有其他错误或警告信息。另外,也可以参考 ZUI 分页插件的文档和示例代码来确保正确使用该插件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值