两个数据表在一个页面中-第二个初始化奇怪
Two DataTable in One Page - Second one initialising weird
我有两个dataTable
在我的页面,我有一个方法如下:
function ToDataTable()
{
$(".dataTable").css("width", "100%");
$(".dataTable").each(function ()
{
var $that = $(this);
/* Start of method */
function ToDataTableInternal()
{
var table = $that.DataTable({
responsive: {
details: { type: "column", target: -1 },
},
columnDefs: [{
className: "control", orderable: !1, targets: -1,
},
{ orderable: !1 }],
"paging": false,
"ordering": false,
"info": false,
"searching": false,
retrieve: true
});
}
/* End of method */
if ($that.is(":visible"))
{
ToDataTableInternal()
}
else
{
// Observe all invisible parents or table to trigger
// ToDataTableInternal method if made visible
var $arr = $(this).parentsUntil(":visible").filter(function ()
{
return $(this).css("display") === "none";
}).add($(this));
var observers = [];
$arr.each(function ()
{
var observer = new MutationObserver(function (mutations)
{
mutations.forEach(function (mutation)
{
if ((mutation.attributeName === 'style' ||
mutation.attributeName === 'class') &&
$that.is(":visible"))
{
ToDataTableInternal();
for (var i = 0; i < observers.length; i++)
{
// Disconnect observers
observers[i].disconnect();
}
}
});
});
observers.push(observer);
observer.observe(this, {
attributes: true
});
});
}
});
}
我有这个方法的原因是,当表的显示是none
,它真的滞后浏览器(特别是IE,我不能做任何事情至少5秒),这是我改变表为DataTable后,它使可见的原因。
但是单独调用方法的问题是第二个DataTable没有我传递的相同设置。(第一个有)相反,第二个也有过滤器,分页,排序元素。
如果我同时调用两者,不会发生任何异常情况。有什么问题吗?
编辑:我不能复制相同的行为在小提琴。
当我尝试做同样的事情时,在另一个环境中似乎没有问题。
我们使用的另一个库出现了问题,而DataTable库没有问题。
您可以在您的数据表配置中添加以下属性来删除过滤,分页和排序:
Datatable 1.9
- "bPaginate":false,//启用或禁用分页
- "bFilter": false,//启用或禁用数据过滤
- "bLengthChange": false,//启用或禁用尺寸下拉菜单
- "bSort": false,//启用或禁用列排序
- "bInfo": false,//开启或关闭表信息显示
Datatable 1.10
在datatable 1.10中更新选项名
- bPaginate ->分页
- bFilter ->搜索
- lengthChange -> lengthChange
- bSort ->排序
- bInfo -> info
相关文章:
- 一个jquery初始化中有多个类
- MyClass.prototype.settings={}被第二个实例化覆盖
- TinyMCE没有'无法进行第二次初始化
- 如何在第一次点击时突出显示链接;并在第二次单击时跟随它,除非在其他地方单击,然后重新初始化未高亮显示的状态
- 如何在显示/隐藏项目后重新初始化多个粘滞标题
- AngularJS - $watch内部的初始化,取决于两个模型
- 在多个动态添加的表单上初始化 jQuery validate() 函数
- 使用 jQuery 和 Javascript 初始化多个 html 元素
- 如何在不使用剑道层次结构网格中的详细初始化函数的情况下获取第一个孩子的兄弟姐妹
- 如何正确使用多个初始化函数
- Snap SVG - 我可以使用多个变量初始化 snap.svg 指向标记中的不同 svg ID 吗?
- FullCalendar:如何重新创建/重新初始化FullCalendar或批量添加多个事件
- 多个ng初始化范围问题
- 使用Angular指令初始化多个jQuery插件
- 无法让两个函数相互初始化
- 用几个ajax请求初始化控制器的最佳方式
- 由于IMG元素中SRC属性的值未初始化,避免了多个GET请求
- 在角控制器中,如何在初始化另一个属性之前先初始化多个异步属性
- tinyMce在第二次访问角局部视图时未初始化
- 两个数据表在一个页面中-第二个初始化奇怪