由于我无法完全控制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.onload
和document.addEventListener("DOMContentLoaded")
,并且rows
的计数为0,但document.addEventListener('readystatechange', function() {})
。
在对console.info()
进行调试之后,我能够看到方法.pagination()
被调用了,但是什么也没发生。
我无法处理表数据的加载或其延迟时间,但是我知道jQuery之前已经加载过。
注意:由于数据源是相同的HTML表格行,因此我无法使用大多数分页系统。我需要使用小提琴之类的分页插件重新加载此表中的数据。
为什么pagination()
被忽略?预先感谢。