Javascript datatables隐藏父div中有datatables表时datatable工具不工作

Javascript datatables隐藏父div中有datatables表时datatable工具不工作,javascript,jquery,datatables,datatables-1.10,Javascript,Jquery,Datatables,Datatables 1.10,我正在创建一个自定义手风琴,在手风琴内容(向上和向下滑动的内容)中有一个表(datatables)。因此,显然,默认情况下,accordion content div(datatables表包装器)是隐藏的,但一旦显示,datatables表工具就无法工作。您可以访问此页面并查看真正的问题,第一部分是问题所在的位置,单击按钮,将显示表格。第二部分是一个工作表,其中不隐藏父div(datatables表的包装器) 非常感谢任何帮助、线索、想法、建议和建议。谢谢大家! 当时加载的第一个html do

我正在创建一个自定义手风琴,在手风琴内容(向上和向下滑动的内容)中有一个表(datatables)。因此,显然,默认情况下,accordion content div(datatables表包装器)是隐藏的,但一旦显示,datatables表工具就无法工作。您可以访问此页面并查看真正的问题,第一部分是问题所在的位置,单击按钮,将显示表格。第二部分是一个工作表,其中不隐藏父div(datatables表的包装器)


非常感谢任何帮助、线索、想法、建议和建议。谢谢大家!

当时加载的第一个html dom插件没有获得示例id,因为它是隐藏的

当示例id未隐藏时,您需要应用插件

像下面这样

    $(".show").click(function(e){

    $(".container").slideToggle();

    $('#example').dataTable( {
        "dom": 'T<"clear">lfrtip',
        "tableTools": {
            "sSwfPath": "tabletools/swf/copy_csv_xls_pdf.swf"
        }

});

});
$(“.show”)。单击(函数(e){
$(“.container”).slideToggle();
$('#示例')。数据表({
“dom”:“Tlfrtip”,
“表格工具”:{
“sSwfPath”:“tabletools/swf/copy_csv_xls_pdf.swf”
}
});
});

或者创建一个函数并在需要时调用它

使用
fnResizeButtons()
API方法,我相信它是:

这是由于TableTools(或任何DOM脚本)无法找到 隐藏元素的高度和宽度

将代码更改为:

$(".show").click(function(e){
   $(".container").slideToggle();
   var tableTools = TableTools.fnGetInstance('example');
   tableTools.fnResizeButtons();
});

我在引导选项卡上遇到过类似的问题,并提出了以下建议:

$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
    var target_id = $(e.target).attr("href");
    var jqTable = $(target_id).find("table");
    var oTableTools = TableTools.fnGetInstance( jqTable[0] );
    if (oTableTools != null && oTableTools.fnResizeRequired()){
        /**
         *  A resize of TableTools' buttons and DataTables' columns is only required on the
         * first visible draw of the table
         */
        jqTable.dataTable().fnAdjustColumnSizing();
        oTableTools.fnResizeButtons();
    }
});

然而,我已经使用
DataTable()
而不是像您这样使用
DataTable()
初始化了我的表。也许改变一下,再试试@davidkonrad的建议?

你的意思是说当你点击“显示隐藏的div”时,隐藏的div将显示并打开div,“不是隐藏的div”将关闭请查看演示站点,第一部分是类似手风琴的东西(它将向下滑动和向上滑动)和datatables表工具(复制,excel,pdf,csv)不工作,第二部分(有蓝色边框的部分)是一个工作示例(csv,excel,pdf,copy)正在工作。很有意思..但很遗憾我遇到了这个错误“未捕获的类型错误:无法读取null的属性'fnResizeButtons'”有什么想法或线索吗?@CodeDemon,刚刚复制了你的整个网站——也使用了jQuery 1.11.1、dataTables 1.10.6、tableTools 2.2.4——如果我像上面那样做的话,它可以与隐藏表一起工作。你完全是像上面那样做的吗?你确定你在什么地方没有打字错误,使用了另一个id作为隐藏表或类似的东西吗?如果
tableTools.fnGetInstance('example')
返回
null
/
未定义的
,它表示没有具有id示例的表。是的,官方示例->因此它也应该防御地工作,此外,即使表本身不需要调整大小,也应该重置闪存按钮。复制了整个演示后,它可以与
DataTable一起工作()
也是。。。