RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1481928
Accepted
Роман
Роман
Asked:2022-12-28 16:36:36 +0000 UTC2022-12-28 16:36:36 +0000 UTC 2022-12-28 16:36:36 +0000 UTC

分页不起作用

  • 772

伙计们,请帮我找出 Pagination.js 插件,或者也许还有其他好的插件?商店里有一个商品清单,你需要把它分成几部分。已经杀了很多时间了,不可能执行。

$("#pagination-container").pagination({
  dataSource: [
    1, 2, 3, 4, 5, 6, 7,
  ],
  pageSize: 12,
  autoHidePrevious: true,
  autoHideNext: true,
  callback: function(data, pagination) {
    // template method of yourself

    var html = template(dataSource);
    $("#data-container").html(html);
  },
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://pagination.js.org/dist/2.5.0/pagination.min.js"></script>
<div id="data-container"></div>
<div id="pagination-container"></div>

但是在生成页面时,抛出“template is not defined”的错误。我将非常感谢您的帮助。

javascript
  • 1 1 个回答
  • 40 Views

1 个回答

  • Voted
  1. Best Answer
    Gene Erbin
    2022-12-28T20:21:36Z2022-12-28T20:21:36Z

    GitHub 上的Pagination.js插件文档提供了一个定义要分页的输出结构的函数示例。在给出的示例中,数据将显示在无序列表中,其中每个数据元素都包装在一个标签中:<li>

    function simpleTemplating(data) {
        var html = "<ul>";
        $.each(data, function(index, item){
            html += '<li>'+ item +'</li>';
        });
        html += '</ul>';
        return html;
    }
    

    在回调函数内部初始化分页时调用此函数,形成第一“部分”数据的输出(来自 的数据元素的数量,dataSource函数一次处理并显示在一个分页页面上,取决于参数pageSize).

    $('#pagination-container').pagination({
        dataSource: [1, 2, 3, 4, 5, 6, 7, ... , 195],
        pageSize: 3,
        callback: function(data, pagination) {
            var html = simpleTemplating(data);
            $('#data-container').html(html);
        }
    })
    

    然后每次单击导航元素(页码和箭头)时都会调用此函数,参考dataSource,根据活动分页页面的数量获取所需数量的数据元素并进行移位。

    Pagination.js插件假定分页的初始数据存储在 js 代码中,仅通过将所需数量的数据元素插入具有分页数据的容器中<div id="data-container"></div>,删除它们并在每次单击时插入新的元素来更改 DOM 结构导航元素。

    如果分页数据最初由 elements 表示html,定义输出结构的函数会将元素从其在页面结构中的原始位置传输到具有分页数据的容器:

    <div class="item">item1</div>
    <div class="item">item2</div>
    <div class="item">item3</div>
    
    const items = document.querySelectorAll('.item');
    
    $("#pagination-container").pagination({
      dataSource: [...items],
      pageSize: 3,
      callback: function(data, pagination) {
        var html = simpleTemplating(data);
        $("#data-container").html(html);
      },
    });
    
    function simpleTemplating(data) {
        const html = new DocumentFragment();
        $.each(data, function(index, item){
            html.append(item);
        });
        return html;
    }
    

    然后在分页初始化时,只有第一个n元素(n在参数中指定pageSize)将从它们的位置移动到数据容器中进行分页: 在此处输入图像描述

    在页面之间移动时,数据元素会根据选择的分页页面从原来的位置移动到分页数据容器中:

    在此处输入图像描述

    为了避免在将数据元素移动到具有分页数据的容器之前在页面结构中显示数据元素,我建议在显示这些元素时为它们添加一个属性hidden,并simpleTemplating在函数中删除该属性。

    最终代码如下所示。分页元素的CSS取自Pagination.js插件站点。

    const items = document.querySelectorAll('.item');
    
    $("#pagination-container").pagination({
      dataSource: [...items],
      autoHidePrevious: true,
      autoHideNext: true,
      pageSize: 3,
      callback: function(data, pagination) {
        var html = simpleTemplating(data);
        $("#data-container").html(html);
      },
    });
    
    function simpleTemplating(data) {
        const html = new DocumentFragment();
        $.each(data, function(index, item){
            item.removeAttribute('hidden');
            html.append(item);
        });
        return html;
    }
    .paginationjs {
     display:flex;
     line-height:1.6;
     font-family:Marmelad,"Lucida Grande",Arial,"Hiragino Sans GB",Georgia,sans-serif;
     font-size:14px;
     box-sizing:initial
    }
    .paginationjs:after {
     display:table;
     content:" ";
     clear:both
    }
    .paginationjs .paginationjs-pages {
     float:left;
     margin-left:10px
    }
    .paginationjs .paginationjs-pages ul {
     float:left;
     margin:0;
     padding:0
    }
    .paginationjs .paginationjs-pages li {
     float:left;
     border:1px solid #aaa;
     border-right:none;
     list-style:none
    }
    .paginationjs .paginationjs-pages li>a {
     min-width:30px;
     height:28px;
     line-height:28px;
     display:block;
     background:#fff;
     font-size:14px;
     color:#333;
     text-decoration:none;
     text-align:center;
     cursor:pointer
    }
    .paginationjs .paginationjs-pages li>a:hover {
     background:#eee
    }
    .paginationjs .paginationjs-pages li.active {
     border:none
    }
    .paginationjs .paginationjs-pages li.active>a {
     height:30px;
     line-height:30px;
     background:#aaa;
     color:#fff;
     cursor:default
    }
    .paginationjs .paginationjs-pages li.disabled>a {
     opacity:.3;
     cursor:default
    }
    .paginationjs .paginationjs-pages li.disabled>a:hover {
     background:0 0
    }
    .paginationjs .paginationjs-pages li:first-child,
    .paginationjs .paginationjs-pages li:first-child>a {
     border-radius:3px 0 0 3px
    }
    .paginationjs .paginationjs-pages li:last-child {
     border-right:1px solid #aaa;
     border-radius:0 3px 3px 0
    }
    .paginationjs .paginationjs-pages li:last-child>a {
     border-radius:0 3px 3px 0
    }
    .paginationjs .paginationjs-nav {
     float:left;
     height:30px;
     line-height:30px;
     font-size:14px
    }
    .paginationjs>:first-child {
     margin-left:0
    }
    
    .paginationjs .paginationjs-pages li.paginationjs-next {
     border-right:1px solid #aaa\9
    }
    #data-container {
      overflow: auto;
      margin: 15px 0;
    }
    #data-container div {
      background: #EEE;
      margin-bottom: 3px;
      padding: 8px;
      line-height: 1em;
      list-style: none;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://pagination.js.org/dist/2.5.0/pagination.min.js"></script>
    
    <div id="data-container"></div>
    <div id="pagination-container"></div>
    
    <div class="item" hidden>item1</div>
    <div class="item" hidden>item2</div>
    <div class="item" hidden>item3</div>
    <div class="item" hidden>item4</div>
    <div class="item" hidden>item5</div>
    <div class="item" hidden>item6</div>
    <div class="item" hidden>item7</div>
    <div class="item" hidden>item8</div>
    <div class="item" hidden>item9</div>
    <div class="item" hidden>item10</div>
    <div class="item" hidden>item11</div>
    <div class="item" hidden>item12</div>

    • 1

相关问题

  • 第二个 Instagram 按钮的 CSS 属性

  • 由于模糊,内容不可见

  • 弹出队列。消息显示不正确

  • 是否可以在 for 循环中插入提示?

  • 如何将 JSON 请求中的信息输出到数据表 Vuetify vue.js?

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5