jQuery插件分页不适用于异步表

时间:2018-10-01 19:04:04

标签: javascript jquery html-table pagination jquery-plugins

由于我无法完全控制HTML或JS,因此需要用新的分页系统替换。

为此,我尝试使用Pagination.js插件,但是一旦加载脚本,方法.pagination()似乎会被完全忽略。

首先,由于想法是相同的,因此我在JSFiddle上进行了此工作。但是我多次更改了代码。

我在开发环境中的代码是:

document.addEventListener('readystatechange', function() {
    if(document.readyState !== 'complete')
        return;

    $.getScript('https://pagination.js.org/dist/2.1.4/pagination.min.js')
      .done(function() {
          let rows = [];
          $('table tbody tr').each(function(i, row) {
              return rows.push(row);
          });

          if(rows.length) {
              $('.jquery-bootstrap-pagination').pagination({
              dataSource: rows,
              pageSize: 1,
              callback: function(data, pagination) {
                  $('tbody').html(data);
              },
              afterRender: function(loaded) {
                  console.info('Pagination loaded:', loaded);
              }
          });
          console.info('Loaded rows:', rows.length);
      } else
          $('.jquery-bootstrap-pagination').css('display', 'none');
  })
  .fail(function(jqxhr, settings, exception) {
      console.error(jqxhr, settings, exception);
  });
});

我已经尝试使用$(document).ready()window.onloaddocument.addEventListener("DOMContentLoaded"),并且rows的计数为0,但document.addEventListener('readystatechange', function() {})

在对console.info()进行调试之后,我能够看到方法.pagination()被调用了,但是什么也没发生。

我无法处理表数据的加载或其延迟时间,但是我知道jQuery之前已经加载过。

注意:由于数据源是相同的HTML表格行,因此我无法使用大多数分页系统。我需要使用小提琴之类的分页插件重新加载此表中的数据。

为什么pagination()被忽略?预先感谢。

0 个答案:

没有答案