覆盖数据表选项

时间:2017-08-23 09:33:33

标签: jquery datatables

我在网站上的每个地方都使用数据表,每个表都有自己的属性

示例: index.php

  $(document).ready(function() {
    $('#fileTable').dataTable({
      "aaSorting": [],
      "columnDefs": [{"orderable": false, "targets": 5}],
    });
  });

archives.php

$('#fileTable').dataTable({
    "columnDefs": [
        {"orderable": false, "targets": 3}
    ]
});

我想更改所有表格的文本而不做更改 jquery.dataTables.min.js

所以我把它放在页脚中:

$(document).ready(function() {
    $('#fileTable').dataTable({
      language: {
        search: "",
        searchPlaceholder: "Search...",
        sLengthMenu:"_MENU_",
        sInfo:"_TOTAL_ elements"
         }
    });
  });

但我有这个错误: DataTables警告:table id = fileTable - 无法重新初始化DataTable。有关此错误的详细信息,请参阅http://datatables.net/tn/3

我如何正确地做到这一点(没有破坏)

谢谢

2 个答案:

答案 0 :(得分:2)

您可以做的是将语言设置放在一个单独的对象中,然后为每个实例$.extend()添加自己的自定义设置,如下所示:

var langSettings = {
  language: {
    search: "",
    searchPlaceholder: "Search...",
    sLengthMenu: "_MENU_",
    sInfo: "_TOTAL_ elements"
  }
}

// for index.php:
$('#fileTable').dataTable($.extend(langSettings, {
  "aaSorting": [],
  "columnDefs": [{
    "orderable": false, 
    "targets": 5
  }]
}));

// for archives.php:
$('#fileTable').dataTable($.extend(langSettings, {
  "columnDefs": [{
    "orderable": false, 
    "targets": 3
  }]
}));

答案 1 :(得分:0)

由于错误说明您无法reinitialise DataTables。但只要您在每个页面中初始化表格,只需添加首选文字。