Javascript DataTableTools复制按钮不工作

Javascript DataTableTools复制按钮不工作,javascript,jquery,datatables,jquery-datatables-editor,Javascript,Jquery,Datatables,Jquery Datatables Editor,首先是我正在开发的网站。目前正在开发中,因此在您回答以下问题之前,情况可能会发生变化: 这是我的初始化代码: // DataTable editor plugin initialization var editor = new $.fn.dataTable.Editor( { ajax: function ( method, url, data, successCallback, errorCallback ) { successCallback( {"id":

首先是我正在开发的网站。目前正在开发中,因此在您回答以下问题之前,情况可能会发生变化:

这是我的初始化代码:

// DataTable editor plugin initialization    
var editor = new $.fn.dataTable.Editor( {
    ajax: function ( method, url, data, successCallback, errorCallback ) {
        successCallback( {"id": 4} );
    },
    table: "#grid-basic",
    dom: 'Tlfrtip',
    fields: [ {
            label: "Request URL:",
            name: "request-url"
        }, {
            label: "Target URL:",
            name: "target-url"
        }, {
            label: "Category:",
            name: "category"
        }
    ]
});
// DataTable Initialization
var dataTable = $('#grid-basic').DataTable({                
    responsive: true,
    columns: [
        { data: "request-url" },
        { data: "target-url" },
        { data: "category" },
        { data: null, defaultContent: '<button type="button" class="btn btn-xs btn-danger icon-delete"><span class="glyphicon glyphicon-remove"></span></button>', orderable: false }
    ]
});

// TableTools DataTable plugin initialization
var tableTools = new $.fn.dataTable.TableTools(dataTable, {
    "sSwfPath": swfPath,
    "aButtons": [
        "copy",
        {
            "sExtends": "collection",
            "sButtonText": "Export",
            "aButtons": ["csv", "xls", "pdf"]
        }
    ]
});
$( tableTools.fnContainer() ).addClass('pull-right').insertBefore('div.dataTables_wrapper');

// Set up editing of fields
$('#grid-basic').on( 'click', 'tbody td:not(:last-child)', function () {
    editor.inline( this );
} );

// Set up Removal functionality
$('#grid-basic').on('click', 'button.icon-delete', function() {
    dataTable.row($(this).parents('tr')).remove().draw();
});   
我有一些非常奇怪的行为。“复制”按钮不起作用。但是,如果我从其他三个选项中选择一个,然后单击“复制”,则效果很好。所有其他选择都很好

更新-
我已经确定,在我至少点击一次收藏之前,我没有在收藏中放置的任何按钮都不会起作用……仍然不知道


更新2-所以我取得了一些进展。我的应用程序首先要求您选择存储类型和域。此时,我正在使用的表被一个简单的内联样式=display:none隐藏。生成url的jquery后,将显示该表及其所有字段。如果我不在开始时隐藏我的表,那么导出按钮都可以正常工作。然而,隐藏表格一开始会把事情搞砸。很明显,我不能一直把桌子藏起来,所以我仍在试图弄清楚为什么会发生这种情况。有一个评级较低的答案,为我指明了正确的方向。

因此,正如我在更新2中所述,问题是,如果按钮添加到表中,而它的隐藏im使用引导,但它发生在使用隐藏类或样式无时,当它显示时,按钮不想工作。容器类的某些内容解决了这个问题,这就是为什么副本在被单击后可以工作的原因

我仍然不知道为什么会发生这种情况,但我就是这样解决的。现在,我在显示表格后添加按钮,如下所示:

$‘网格容器’。show400; $tableTools.fncainer.addClass'pull-right'。在'div.dataTables_wrapper'之前插入;


这意味着他们不会成为过渡的牺牲品,工作得很好

我已经确定,在我至少单击集合一次之前,我没有在集合中放置的任何按钮都不会起作用……仍然没有确定我的任务是在我的datatable之前创建一个新的div,我只想:$tableTools.fnContainer.appendTo'divId';。我也在使用bootstrap,在datatable包装器中插入before/appending/prepending会破坏UI。很高兴你已经解决了。干得好