博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Bootstrap的jq匿名函数,实现分页技术--博客园老牛大讲堂
阅读量:7254 次
发布时间:2019-06-29

本文共 6612 字,大约阅读时间需要 22 分钟。

我自己设计界面就遇到了这个问题,也在网上查了,但是没搜到,就干脆自己写了一个。-

1、为什么要用H5分页?

  首先H5如果做前端,后端肯定也能分页,但是这样就会导致前端多次访问后端,而且用户体验不好。如果H5请求服务器一次,把分页技术放在前端,不仅能减轻服务器压力。还能

实现想要的效果。

首先分页技术是:接收到数据后一个界面显示不完数据,之后需要显示下一面的技术就是分页技术。

2、分页的类别,分页的优缺点? 

  分页技术分为:假分页,真分页,真假混合分页。

  假分页:就是请求服务器一次而得到所有数据,但是如果数据庞大,就会解析较慢。优点是:能够前端能够随心所欲的得到想要的数据(灵活性强)。

  真分页:就是每次请求一个页面的数据,点击下一页再次请求数据。但是会造成服务器访问次数过多,用户使用量大,就会造成用户等待。

  真假混合分页:就是请求一次服务器得到3-4页的数据,也能显示出想要的数据,当超出4页的数据就再次请求数据。优点突出,但是前台操作麻烦。

我这里用来bootstrap框架。下面的例子有一个小bug,如果细心的人能找到(不过不影响结果)

方法一:

  思路:

    1、首先显示下面的小标,让下面的小标能够根据内容多少而增减,

    2、之后让小标增加上点击事件,并能够触发。

    3、实现一个方法,遍历小标,获取点击的下标,根据下标显示内容。

            
//这里是相对路径-博客园老牛大讲堂
名称 年龄段 年龄
View Code

 

  

 

方法二:--

  1、当然上面的方法固然能够实现,但是!对于我这个小神来说这是远远不够的。

  2、想了解更多,看看下面例子:

  3、思路:和上面相同。但是!用了js里面的匿名函数

代码:

(function(window){
//博客园老牛大讲堂 var data; var rows; slide.prototype.first = function(){ var a=$("#fenye .active").index(); var b=a-1; if(a>0) { $("#fenye li").eq(a).removeClass("active"); $("#fenye li").eq(b).addClass("active"); fuzhi(); } } slide.prototype.end= function(pages){
//博客园老牛大讲堂 var a=$("#fenye .active").index(); var b=$("#fenye li").length; if(a
"+(i+1)+""); } $("#fenye li").eq(0).addClass("active"); fuzhi(); } slide.prototype.pagesClick = function(){ $("#fenye li").click(function(){ var index=$(this).index(); $(this).siblings().removeClass("active"); $(this).addClass("active"); fuzhi(); }); } function slide(all,num){ data=all; rows=num; var pages = Math.ceil(data.length / rows); this.init(pages);//初始化页面 this.pagesClick();//添加点击事件 fuzhi(); } function fuzhi(){ $("#contant").empty(); var a=$("#fenye .active").index(); var b=rows*a; for(var i=b;i<(b+rows);i++){ $("#contant").append(""+data[i].name+""+data[i].sex+""+data[i].age+""); } } window.echoSlide = slide;})(window);
View Code

 

html代码:

            
//博客园老牛大讲堂 排班管理--排班录入
名称 年龄段 年龄
View Code

 

方法三

  经过我又一天的努力,克服重重困难终于实现一个万能板的bootstrap分页技术了,下面我分享一下,不过想看懂有点难度。

期待有更好的代码。下面我说一下思路。

  思路:首先传递值:表头,表内容,每一页需要显示多少行,以及找到显示到哪个元素下(HTML页面)。

    js部分:主要分为表格部分和下面的点击事件:先实现下面的动态生成小图标,并添加点击事件。

     其次:实现表头的内容,然后实现内容的添加。是不是很容易呢?

//博客园老牛大讲堂            
调用

分页2.js代码:

(function(window){        var title;    var data;    var rows;    var url;        function setContent(e){
//博客园老牛大讲堂--初始化页面 var top="
    "; e.append(top); } function setTitleContent(title){
    //博客园老牛大讲堂--添加表头信息 for(var i=0;i
    "+title[i]+""); } } function setIcon(pages){
    //博客园老牛大讲堂--增加下面的小图标 for(var i = 0; i < pages; i++) { $("#fenye").append("
  • "+(i+1)+"
  • "); } $("#fenye li").eq(0).addClass("active"); } function setClick(){
    //博客园老牛大讲堂--为小图标设置点击事件 $("#fenye li").click(function(){ var index=$(this).index(); $(this).siblings().removeClass("active"); $(this).addClass("active"); fuzhi(); }); } function setFirstClick(){
    //博客园老牛大讲堂--为下面小图标第一个设置点击事件 $("#first").click(function(){ var a=$("#fenye .active").index(); var b=a-1; if(a>0) { $("#fenye li").eq(a).removeClass("active"); $("#fenye li").eq(b).addClass("active"); } fuzhi(); }); } function setEndClick(){
    //博客园老牛大讲堂--为最后一个小图标设置点击事件 $("#end").click(function(){ var a=$("#fenye .active").index(); var b=$("#fenye li").length; if(a
    "); for(var t in data[b]){ $("#contant tr:eq("+j+")").append(""+data[i][t]+""); } $("#contant").append(""); } } function slide(titl,dat,ro,e){ title=titl; data=dat; rows=ro; setContent(e);//博客园老牛大讲堂--设置静态内容 setTitleContent(title)//博客园老牛大讲堂--设置上面的头部 var pages = Math.ceil(data.length / rows); setIcon(pages);//博客园老牛大讲堂--添加下面的图标,并为第一个添加active setClick();//博客园老牛大讲堂---为每一个小图标增加监听事件 setFirstClick();//博客园老牛大讲堂---为第一个小图标增加 setEndClick();//博客园老牛大讲堂--为最后一个小图标增加 fuzhi();//博客园老牛大讲堂---赋值操作 } window.echoSlide = slide;})(window);
    实现

    方法四:如果大家有什么不懂的,或者有更好的分页方案,希望能告诉我。 

     

    转载于:https://www.cnblogs.com/laonniudajiangtang/p/5885683.html

    你可能感兴趣的文章
    python面试知识点
    查看>>
    栅格布局
    查看>>
    Zimber 8.8.12卸载后重新安装报错解决办法
    查看>>
    Git 自救指南
    查看>>
    spring boot配置项目访问路径,配置拦截器,配置静态虚拟路径
    查看>>
    linux运维笔记
    查看>>
    Lake Counting (DFS)
    查看>>
    信息安全影响因素
    查看>>
    hadoop安装
    查看>>
    delegate事件委托
    查看>>
    Linux Process VS Thread VS LWP
    查看>>
    杭电多校第二场 1005 hack it
    查看>>
    VMM2012应用指南之9-向VMM中添加VMware ESX Server主机
    查看>>
    Exchange日常管理之二十二:配置保留策略
    查看>>
    Android -- Webview自适应屏幕
    查看>>
    从Delphi 7升级到Delphi XE
    查看>>
    android圆形图像
    查看>>
    Oracle数据库备份还原工具之Expdp/IMPdp
    查看>>
    【转】android JNI编程 一些技巧(整理)
    查看>>
    MySQL之终端(Terminal)管理数据库、数据表、数据的基本操作
    查看>>