前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jquery如何模拟分页-小白进阶

jquery如何模拟分页-小白进阶

作者头像
Javanx
发布2019-09-04 15:21:13
1.3K0
发布2019-09-04 15:21:13
举报
文章被收录于专栏:web秀web秀

下面注释很详细,这里就不做过多的介绍了

html容器

代码语言:javascript
复制
<div id="docList"></div>
<div class="more" id="docLoadMore">加载更多</div>

js逻辑处理

代码语言:javascript
复制
var data = {
  // 分页数据
  docPages: {
    pageNo: 1, // 当前页码
    pageSize: 3 // 一页多少条数据
  },
  // 模拟数据
  docList: [{
    name: '这是我的第1篇文章'
  },{
    name: '这是我的第2篇文章'
  },{
    name: '这是我的第3篇文章'
  },{
    name: '这是我的第4篇文章'
  },{
    name: '这是我的第5篇文章'
  },{
    name: '这是我的第6篇文章'
  },{
    name: '这是我的第7篇文章'
  },{
    name: '这是我的第8篇文章'
  }]
}
$('#docLoadMore').on('click',function(){
    function getHtml(name) {
      // html模板
      var tpl = '<div class="load-li  dis-flex clearfix">'+
                  '<span class="align-left">'+
                      '<img src="../images/productDetails/yh_product_wendang_icon@2x.png" / class="word-icon">'+
                  '</span>'+
                  '<span class="color-66 flex1 li-content fs-01">'+name+'</span>'+
                  '<span class="align-right">'+
                      '<img src="../images/productDetails/yh_product_xiazai_icon@2x.png" / class="load-icon">'+
                  '</span>'+
              '</div>';
      return tpl;
    }
    var pageNo = data.docPages.pageNo;
    var pageSize = data.docPages.pageSize;
    // 计算最多分多少页
    // 总条数 / 一页多少条 = 可以分多少页  如果是小数  向上取整(Math.ceil)
    let maxPage = Math.ceil(data.docList.length / pageSize);
    // 如果页面大于总页数return
    if (pageNo > maxPage) {
        console.log('没有更多了');
        return;
    }
    // 计算第n页时取第几条到第几条数据
    var startIndex = (pageNo-1) * pageSize; // 下标从0开始,所以-1
    // 1:(1-1)*2=>0
    // 2:(2-1)*2=>2
    // 3:(3-1)*2=>4
    // 4:(4-1)*2=>6
    var endIndex = pageNo * pageSize - 1;
    // 1: 1*2=>2
    // 2: 2*2=>4
    // 3: 3*2=>6
    data.docPages.pageNo ++;
    // 根据下标找到对应的页码的数据
    var newPage = vm.data.docList.slice(startIndex, endIndex+1);
    let html = '';
    newPage.map(function(item){
        html += getHtml(item.name);
    });
    // 向元素后面插入准备好的html内容
    $('#docList').append(html);

})

提示

tips:上面代码没有初始化第一页数据,点击一下才会出来第一页的数据,所以可以在页面加载完毕,自动触发一下点击事件

代码语言:javascript
复制
// 页面加载完毕触发一次,作为默认值
$('#docLoadMore').trigger('click');

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年7月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • html容器
  • js逻辑处理
  • 提示
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档