我正在努力创建一个 js 函数来切换页面上所有数据表的分页。我做错了什么?
注意:每当我在 Chrome 控制台中运行 togglePaging()
时,都会得到 undefined
作为响应。
var globalPaging = true;
function togglePaging() {
globalPaging = !globalPaging;
$('.dataTable').each(function(){
var oTable = $(this).dataTable();
var oSettings = oTable.fnSettings();
oSettings.aoColumns[1].bPaginate = globalPaging;
var oTableDT = $(this).DataTable();
oTableDT.draw();
});
}
$(document).ready(function(){
$('table.toDataTable').DataTable({
"bPaginate": globalPaging
});
});
这是一个演示: jsfiddle.net/8n1nj0bu
<小时/>更新:这是我采用的解决方案,源自 Teddy 的答案:jsfiddle.net/jyf8h2je
最佳答案
draw() 函数仅更新表格内容。如果你想改变其他属性,也许你需要重新初始化你的表。 绘制API:https://datatables.net/reference/api/draw
我的例子:
$('.dataTable').each(function(){
var oTableDT = $(this).DataTable({
"bPaginate": globalPaging,
"bDestroy": true
});
});
https://jsfiddle.net/8n1nj0bu/1/
此解决方案有一个缺点,即您需要重新初始化所有属性。
注意:我的 FF43 无法运行 onclick,所以我使用 jquery 代替。
关于Javascript 在所有数据表上切换分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38171836/