Datatables警告(表格ID='inventory'):仅初始化一次仍提示无法重新初始化数据表
解决DataTables「无法重新初始化数据表」警告的问题
我之前也碰到过一模一样的问题!咱们先扒一扒代码里的坑——
你这段初始化代码其实执行了两次DataTables初始化操作:
- 第一次是
$('table.display').DataTable();:这行代码会给所有带有display类的表格都初始化一遍 - 第二次是
$('#inventory').DataTable({...});:如果你的#inventory表格同时也带有display类(比如HTML写的是<table id="inventory" class="display">),那这就等于给同一个表格重复初始化了两次,这就是警告的直接原因!
给你几个可行的解决方案:
方案一:精准初始化目标表格(最推荐)
如果只有#inventory表格需要初始化,直接删掉第一行的全局初始化代码就行:
$(document).ready(function() { $('#inventory').DataTable({ "aoColumnDefs": [{"bVisible": false, "aTargets": [0]}] }); });
方案二:批量初始化时排除已单独配置的表格
如果确实需要给其他带display类的表格初始化,用:not()选择器跳过#inventory:
$(document).ready(function() { $('table.display:not(#inventory)').DataTable(); $('#inventory').DataTable({ "aoColumnDefs": [{"bVisible": false, "aTargets": [0]}] }); });
方案三:强制销毁旧实例(特殊场景用)
如果实在绕不开重复初始化的情况,可以加上destroy: true参数,强制销毁旧的DataTables实例再重新初始化:
$(document).ready(function() { $('table.display').DataTable(); $('#inventory').DataTable({ "aoColumnDefs": [{"bVisible": false, "aTargets": [0]}], "destroy": true }); });
最后提个小建议:先检查下你的HTML结构,确认#inventory表格是不是真的带有display类,这是最常见的触发这个警告的场景~
内容的提问来源于stack exchange,提问作者Lizzy
相关产品推荐
相关产品推荐

