在一些搜索列表的页面中,我们会遇到一些需要处理页签的需求,一般这样的页面,要么是在JSP中处理,每次都跳页。这样做是个很方便的方法。但是如果页面上有很多和列表无关,每次都需要重新渲染是不是显得慢了一些。那么,还有另一种方法——ajax请求列表,这种方法同样需要和后端预定接口格式,但是这里只描述分页这块的事情,为了专注于分页的逻辑,页签的式样我就用bootstrap来处理。

 <ul class="pagination">
<li data-pagenum="0" class="active"><a href="javascript:void(0);">1</a>
</li>
<li data-pagenum="1"><a href="javascript:void(0);">2</a>
</li>
<li data-pagenum="2"><a href="javascript:void(0);">3</a>
</li>
<li data-pagenum="3"><a href="javascript:void(0);">4</a>
</li>
<li data-pagenum="4"><a href="javascript:void(0);">5</a>
</li>
<li data-pagenum="5"><a href="javascript:void(0);">6</a>
</li>
<li data-pagenum="6"><a href="javascript:void(0);">7</a>
</li>
<li data-pagenum="7"><a href="javascript:void(0);">8</a>
</li>
<li data-pagenum="8"><a href="javascript:void(0);">9</a>
</li>
<li data-pagenum="1"><a href="javascript:void(0);">下一页</a>
</li>
<li data-pagenum="5559"><a href="javascript:void(0);">尾页</a>
</li>
</ul>

接下来我们专注逻辑部分

既然要处理页签,就不得不提到接口返回了那些数据,一般来说除了返回请求的list外还应给有总共有多少条信息count,

总页数totalPage, 当前页curPage。当然也有其他的信息,不过有上面3个信息就已经可以处理页签了。

我们封装一个专门处理页签的函数function setPageFoot(count, totalPage, curPage){}

 /*分页 设置*/
function setPageFoot(count, totalPage, curPage){ var pageStr = '';
var i_page_start = 0;
var i_page_end = 9;
if(totalPage < 9){
i_page_end = totalPage;
}else{ if((curPage + 8) <= (totalPage-1)){
i_page_end = curPage + 8;
}else if((curPage + 7) <= (totalPage-1)){
i_page_end = curPage + 7;
}else if((curPage + 6) <= (totalPage-1)){
i_page_end = curPage + 6;
}else if((curPage + 5) <= (totalPage-1)){
i_page_end = curPage + 5;
}else if((curPage + 4) <= (totalPage-1)){
i_page_end = curPage + 4;
}else if((curPage + 3) <= (totalPage-1)){
i_page_end = curPage + 3;
}else if((curPage + 2) <= (totalPage-1)){
i_page_end = curPage + 2;
}else if((curPage + 1) <= (totalPage-1)){
i_page_end = curPage + 1;
}else{
i_page_end = curPage;
}
i_page_start = i_page_end-8;
} if(curPage >= 4 && curPage + 4 < totalPage - 1){
i_page_start -= 4;
i_page_end -= 3;
} var pageItems = [];
if(curPage > 0){
pageItems.push({
'txt': '首页',
'data-pageNum': 0
});
if(i_page_start > 0){
pageItems.push({
'txt': '上一页',
'data-pageNum': i_page_start-1
});
}
}
for(; i_page_start <= i_page_end; i_page_start ++){
var pageItem = {
'txt': i_page_start + 1 + '',
'data-pageNum': i_page_start
}
pageItems.push(pageItem);
} if(curPage < totalPage - 1){
if(curPage < totalPage-1){
pageItems.push({
'txt': '下一页',
'data-pageNum': curPage + 1
});
}
pageItems.push({
'txt': '尾页',
'data-pageNum': totalPage - 1
});
} $.each(pageItems, function (i,v){
var pageStrItem = '<li data-pageNum="'+v['data-pageNum']+'"><a href="javascript:void(0);">'+v.txt+'</a></li>';
if(v['data-pageNum'] === curPage){
pageStrItem = '<li data-pageNum="'+v['data-pageNum']+'" class="active"><a href="javascript:void(0);">'+v.txt+'</a></li>';
}
pageStr += pageStrItem;
}); $('.mobHot-contain .panel-footer .pagination').html('').append(pageStr);
}

这样我们就完成了这次页签的刷新。

ajax实现分页页签的更多相关文章

  1. ASP.NET MVC搭建项目后台UI框架—4、tab多页签支持

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  2. JavaScript选项卡/页签/Tab的实现

    选项卡,也称页签,英文用Tab(Module-Tabs)表示.Tab将不同的内容重叠放在一个布局块内,重叠的内容区里每次只有其中一个是可见的. Tab可以在相同的空间里展示更多的信息,它把相似的主题分 ...

  3. Ajax做分页

    Ajax做分页 用这种ajax做分页的方法比较简单,把代码直接复制就可以,然后根据实际更改一下里面的参数. .设置分页显示显示的样式,显示效果如下. 复制代码 <style type=" ...

  4. 利用Linq + Jquery + Ajax 异步分页的实现

    在Web显示的时候我们经常会遇到分页显示,而网上的分页方法甚多,但都太过于消耗带宽,所以我想到了用Ajax来分页,利用返回的Json来处理返回的数据, 大大简化了带宽的压力. 先说下思路,无非就是异步 ...

  5. 5.Hibernate实现全套增删改查和ajax异步分页

    1.1 创建如下oracle数据库脚本 drop sequence seq_stu; create sequence SEQ_STU minvalue maxvalue start increment ...

  6. PHP中使用jQuery+Ajax实现分页查询多功能操作

    1.首先做主页面Ajax_pag.php 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UT ...

  7. WPF如何实现一个漂亮的页签导航UI

    最近看到一个比较漂亮的UI主界面,该UI是用左边的页签进行导航,比较有特色,就想着尝试用WPF来实现一下.经过一番尝试,基本上将UI设计图的效果用WPF程序进行了实现.下面介绍一下主要的思路: 1 U ...

  8. C# 重绘tabControl,添加关闭按钮(页签)

    C# 重绘tabControl,添加关闭按钮(页签) 调用方法 参数: /// <summary> /// 初始化 /// </summary> /// <param n ...

  9. 实现TabView(页签)效果

    今天花了点时间,设计了一个网页上用的tabview(页签.tabcontrol)效果.个人觉得实现得比较不错,网页元素用得比较少,js代码也比较精练.测试了一下支持IE.FireFox以及chrome ...

随机推荐

  1. css预处理器 sass和stylus对比以及常用功能

    在众多的css预处理器语言中,sass和stylus算是十分优秀的两个.本文主要针对两者的常用功能做个简单的对比分析.在对比中了解二者的差异,同时帮助大家更好的掌握这两种预处理语言. 本文涉及到的sa ...

  2. spark on yarn,cluster模式时,执行spark-submit命令后命令行日志和YARN AM日志

    [root@linux-node1 bin]# ./spark-submit \> --class com.kou.List2Hive \> --master yarn \> --d ...

  3. js 页面按钮提交后 创建显示loading div 操作完成后 再隐藏或删除 进度div

    预期效果: 1.点击Save按钮,创建及显示loading div框 2.Save操作完成后,再删除loading 及弹出提示结果 <html> <head> </hea ...

  4. ASP.NET WebForm 之 Ajax 请求后端处理

    概述 ASP.NET MVC中的异步用途非常广泛,操作起来也非常简单.前台请求异步请求 Controller下的Action 方法,后端返回ActionResult 即可.但是在ASP.NET Web ...

  5. CentOS7安装Nginx实现API网关

    参考 http://nginx.org/ http://nginx.org/en/linux_packages.html#stable https://www.npmjs.com/package/js ...

  6. Container&injection(容器与注入思想)

    container 为了更好理解JAVA容器,查询了容器的概念以及容器的诞生原因和历史: 容器技术是怎么一个概念呢?其实,IT里的容器技术是英文单词Linux Container的直译.contain ...

  7. 将php代码部署到新浪云测试(简单方法,包含数据库的连接)

    很多人做项目都是先在本地测试然后上传到服务器运行,如果包含了操作数据库的信息往往需要进行一番调试,这里我总结一下把php代码包含数据库的连接如何上传到新浪云服务器的步骤. 1.在新浪云应用SAE的控制 ...

  8. UITableView分隔线

    问题1: 在ios中使用UITableView时,当行数较少是,可能一屏幕能显示完全所有行,这时候会出现下面的问题,显示多余的分隔线 图如下: 解决方案: //解决方案1 //添加如下代码 -(CGF ...

  9. Android无需权限显示悬浮窗

    TYPE_TOAST一直都可以显示, 但是用TYPE_TOAST显示出来的在2.3上无法接收点击事件, 因此还是无法随意使用. 下面是我之前研究后台线程显示对话框的时候记得笔记, 大家可以看看我们项目 ...

  10. Azure进阶攻略 | 你的程序也能察言观色?这个真的可以有!

    前段时间有个网站曾经火爆微博和朋友圈:颜龄机器人.只要随便上传一张包含人面孔的照片,这个网站就可以分析图片,并判断照片中人物的年龄.化妆.美颜 P 图.帽子墨镜之类的配饰,几乎都没法影响这个网站的检测 ...