Javascript 一页上有多个表的Datatables
我在datatables.net网站上查找一些说明或文档,而不是关于如果您在一个页面上有多个表,并且希望以不同方式处理每个表,该怎么办 我尝试了显而易见的方法。在我的js中,将每个id分配给不同的id,然后为每个id执行代码,但由于某些原因,这是不允许的。我没有收到错误,但datatables本身会中断,不会执行任何操作Javascript 一页上有多个表的Datatables,javascript,datatables,Javascript,Datatables,我在datatables.net网站上查找一些说明或文档,而不是关于如果您在一个页面上有多个表,并且希望以不同方式处理每个表,该怎么办 我尝试了显而易见的方法。在我的js中,将每个id分配给不同的id,然后为每个id执行代码,但由于某些原因,这是不允许的。我没有收到错误,但datatables本身会中断,不会执行任何操作 $(document).ready(function() { var oTable = $('#inbox').dataTable( { "bAutoWidth":
$(document).ready(function() {
var oTable = $('#inbox').dataTable( {
"bAutoWidth": false,
"aoColumnDefs": [
{ "bSortable": false, "aTargets": [ 0, -1 ] },
{ "sWidth": "20px", "aTargets": [ 0, -1 ] },
{ "sWidth": "100px", "aTargets": [ 1 ] },
{ "sWidth": "150px", "aTargets": [ 3 ] }
]
} );
var oTable = $('#sent').dataTable( {
"bAutoWidth": false,
"aoColumnDefs": [
{ "bSortable": false, "aTargets": [ 0, -1 ] },
{ "sWidth": "20px", "aTargets": [ 0, -1 ] },
{ "sWidth": "100px", "aTargets": [ 1 ] },
{ "sWidth": "150px", "aTargets": [ 3 ] }
]
} );
});
更新
您正在重新声明同一变量
var oTable = $('#inbox').dataTable({ /* ... */ });
var oTable = $('#sent').dataTable({ /* ... */ });
这其中的“可旋转”部分正是艾伦(作者)碰巧在他的例子中使用的,以符合他的惯例。小写字母“o”表示某个对象,它是一个表。但是你可以用任何你想要的名字
您的想法是正确的,但您需要使用:
var inboxTable = $('#inbox').dataTable({ /* ... */ });
var sentTable = $('#sent').dataTable({ /* ... */ });
然后,如果您在站点上遵循他的其他示例,您只需将自己的变量名替换为“oTable”
现场样品:
[更新] 我应该提到,最近我在一个嵌套对象中存储了多个表;我有一种轮询机制,可以迭代特定的表数组(而不是其他表),因此示例对象如下所示:
var oTables = {
"polling" : [
$('#someTable').dataTable(opts),
$('#anotherTable').dataTable(opts)
],
"nonpolling" : [
$('#staticTable').dataTable(opts)
]
};
最终结果仍然是一样的。但我现在可以通过轮询表对象数组调用SetTimeout:
if(someBoolean) {
for(var i=0; i < oTables.polling.length; i++) {
setTimeout(pollingFunction, 5000)
}
}
if(someBoolean){
for(变量i=0;i
(高度简化)另请参见,谢谢。我一定找遍了所有人,但找不到好的东西。出于某种原因,当我将一个dataTable类应用于两个表,而使用('.dataTable).dataTable({…它仍然无法正常工作。我运行了另一个问题,可以通过确保不同表的oaColumn变量的名称不同来解决。
if(someBoolean) {
for(var i=0; i < oTables.polling.length; i++) {
setTimeout(pollingFunction, 5000)
}
}