gpt4 book ai didi

javascript - DataTables 删除另一页上的 child

转载 作者:可可西里 更新时间:2023-11-01 14:48:04 25 4
gpt4 key购买 nike

我已经试了几个小时了,还是搞不懂这个……我向 DataTables 添加了某种 jQuery-UI Accordion 式效果,以在子行内显示 div。因此,当您单击一行时,子项将被添加并且 div 会展开,如果您单击同一行,div 将隐藏并显示动画并且子项将被删除。如果您在子项打开时单击另一行,则第一个子项 div 会隐藏,然后第一个子项会被移除,然后添加新的子项并显示 div。

这在每个页面上都能正常工作。但是如果我切换页面,第一个 child 不会被删除。

我有这个代码:

var openschoolingschild = "nothing"; //Variable to store css-id of row which has an open child
var openschoolingsrow = ""; //Variable to store which row has a child


$('#training_management_schoolings_items_table tbody').on('click', 'tr', function () {
var tr = $(this).closest('tr');
var row = oTable.row( tr );
var thisid = $(this).attr('id');
$('#training_management_schoolings_items_table tbody tr').removeClass('shown');
if ( row.child.isShown() ) {
$('#'+thisid+'_details').hide("blind",300,function(){
row.child.remove();
tr.removeClass('shown');
});
openschoolingschild = "nothing";
openschoolingsrow ="";
}
else {
if (openschoolingschild != "nothing") {
$('#'+openschoolingschild+'_details').hide("blind",300,function(){
$("#"+openschoolingschild).removeClass('shown');
openschoolingsrow.child.remove();
});
row.child( training_management_details(thisid) , "training_management_schoolings_table_child" ).show();
tr.addClass('shown');
$('#'+thisid+'_details').show("blind",300,function(){
openschoolingschild = thisid;
openschoolingsrow = row;
preventcollapse();
});
}
else {
row.child( training_management_details(thisid), "training_management_schoolings_table_child" ).show();
tr.addClass('shown');
$('#'+thisid+'_details').show("blind",300,function(){
preventcollapse();
openschoolingschild = tr.attr('id');
openschoolingsrow = row;
});
}
}
});

jQuery-on-part 在 DataTables init.DT-callback-function 中执行,如您所见,我将具有子项的行存储在全局变量中。

我想我无法删除子项,因为当我切换页面时它不存在于 DOM 中。但 DataTables 仍然保存数据,根据 DataTables 手册和论坛,您可以访问“隐藏”部分。我没有使用表的服务器端处理。

我错过了什么?

最佳答案

好吧,愚蠢的我。我刚刚找到了解决方案。更多的解决方法,但它很好,因为当我更改页面或重绘表格时,我真的不必让 children 保持打开状态。

"fnInfoCallback": function(){
if (row != undefined) {
row.child.remove();
}

我将行指定为全局变量,因此它是永久性的。

关于javascript - DataTables 删除另一页上的 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25648291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com