jquery 点击上一页、下一页、末页如何跳转
写了一个新闻页面,每个页面从接口获取9条数据展示,页数是动态生成的,现在只做了点击页数获取相应页数据渲染到页面,上一页、下一页、末页不太清楚怎么做,我的疑问在于,如果点击上一页或下一页,如何知道当前页面的索引呢?请有经验的同学指教
html:
<!-- 主体内容 -->
<div class="news-content">
<div class="news-content-title">
<div class="line horizon"></div>
<div class="title-name horizon">新闻资讯</div>
<div class="line horizon"></div>
</div>
<div class="news-wrapper">
</div>
<!-- 页数 -->
<ul id="page-wrapper">
</ul>
js:
$(document).ready(function(){
// 加载首页新闻
getSubnews();
// 加载某页新闻
$("#page-wrapper").delegate(".pager", "click", function(){
var no = $(this).index()-1;
var pagenum = (no - 1)*9;
// alert(pagenum);
goPage(pagenum);
})
// !!!这里写的有问题,要写加载下一页的代码的
var currentPage = 1;
$("li .page-next").click(function(){
alert();
currentPage++;
goPage(currentPage);
})
// 定义获取首页新闻函数(跳转到该二级页面时或点击首页时加载)
function getSubnews(){
$.ajax({
url:"http://123.56.196.192:2000/syxa/news-consult/2/0/9",
type:"GET",
// data: ,
error:function(){
// console.log(error);
},
success:function(data){
var html="";
// count为总页数
// alert(data.count);
//产生的页数
var pageno = Math.ceil(data.count/9);
// alert(pageno);
var html = "";
for(var i=1; i<= pageno; i++){
html += "<li class=\"pager\">" + i + "</li>";
// $(html).insertBefore(".page-next");
}
html = "<li class=\"page-first\">"+"首页"+"</li>"
+ "<li class=\"page-prev\">"+"上一页"+"</li>"
+html
+"<li class=\"page-next\">"+"下一页"+"</li>"
+"<li class=\"page-last\">"+"末页"+"</li>";
// $(html).insertBefore(".page-next");
$("#page-wrapper").html(html);
// 加载首页新闻9条
// alert(data.data[0].title);
var htmlString="";
$.each(data.data,function(i,item){
// alert(i);
htmlString += " <div class=\"news-content-item\">"
+"<div class=\"news-content-item-title\">"
+"<span class=\"item-title\">"+data.data[i].title+"</span>"
+"<span class=\"item-date\">"+data.data[i].create_time+"</span>"
+"<span class=\"item-location\"><i class=\"fa fa-map-marker\" ></i>"+"北京"+"</span></div>"
+"<div class=\"news-content-item-text\">"
+"<a href=\" \">"+"<img class=\"news-img\" src="+data.data[i].top_img+"></a>"
+"<a href=\" \"><div class=\"news-text\">" +data.data[i].subtitle+"</div></a></div>"
+"<a href=\" \" class=\"news-more\">"+"了解更多"+"</a></div> ";
// $(htmlString).insertAfter(".news-content-title");
// console.info(htmlString);
})
$(".news-wrapper").html(htmlString);
}
})
}
// 定义点击页数跳转
function goPage(page){
// page=(page-1);
$.ajax({
url:"http://123.56.196.192:2000/syxa/news-consult/2/"+page+"/9",
type:"GET",
data:{page:page},
error:function(){
console.log(error);
},
success:function(data){
// 刷新页数
console.info(data);
var pageno = Math.ceil(data.count/9);
// alert(pageno);
var html = "";
for(var i=1; i<= pageno; i++){
html += "<li class=\"pager\">" + i + "</li>";
// $(html).insertBefore(".page-next");
}
html = "<li class=\"page-first\">"+"首页"+"</li>"
+ "<li class=\"page-prev\">"+"上一页"+"</li>"
+html
+"<li class=\"page-next\">"+"下一页"+"</li>"
+"<li class=\"page-last\">"+"末页"+"</li>";
// $(html).insertBefore(".page-next");
$("#page-wrapper").html(html);
// 生成内容
var htmlString="";
$.each(data.data,function(i,item){
// alert(i);
htmlString += "<div class=\"news-content-item\">"
+"<div class=\"news-content-item-title\">"
+"<span class=\"item-title\">"+data.data[i].title+"</span>"
+"<span class=\"item-date\">"+data.data[i].create_time+"</span>"
+"<span class=\"item-location\"><i class=\"fa fa-map-marker\" ></i>"+"北京"+"</span></div>"
+"<div class=\"news-content-item-text\">"
+"<a href=\" \">"+"<img class=\"news-img\" src="+data.data[i].top_img+"></a>"
+"<a href=\" \"><div class=\"news-text\">" +data.data[i].subtitle+"</div></a></div>"
+"<a href=\" \" class=\"news-more\">"+"了解更多"+"</a></div> ";
// $(htmlString).insertAfter(".news-content-title");
})
$(".news-wrapper").html(htmlString);
}
})
}
// 跳转某页函数结束
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
分页原理基本就是
每页数据数 showNum
数据总数 dataNum
总页数 Math.ceil(dataNum / showNum)
当前页 page
上一页 page - 1
下一页 page + 1
当前页数据开始位置 (page - 1) * showNum + 1
当前页数据结束位置 page * showNum
第一页跟最后一页的数据单独判断请求.
所以你需要什么功能就相应的写就可以了
下面摘要一个以前做的例子局部:
当前页默认是1,进入页面后可以将此数字记录在js变量或者隐藏域里面。
点击了下一页,就将此变量+1,点了上一页,就将此变量-1。
同时做个限制,页码min为1,max根据数据量与每页信息进行计算。
如果页码是通过url传递,也可以通过js获取到url上的page信息。