2

我尝试使用 jQuery 将我的“sDom 生成”、html、搜索组件从我的数据表中移出,例如:

$("#-filter_form").prepend($("#finder"));

我试图把这段代码放在我的数据表初始化方法之后。在我的脚本中也有一些下降。没运气。

当我之后使用萤火虫时,我可以进行这种操作。

我在 document.ready() 里面,所以这对我没有任何帮助。我怎样才能做到这一点?我应该做一些花哨的并发编程还是有其他方法?

我在 datatables 论坛上读到了这个主题,但没有什么有用的,人们说你应该像我尝试过的那样之后用 jQuery 来做。

来自数据表论坛:

allanallan 2012 年 8 月 帖子:16,405

sDom 只能控制 DataTables 容器中生成的元素。但是,您可以做的只是在使用标准 jQuery / DOM 方法(即 append / appendChild)完成初始化后,将生成的元素从生成的位置移动到 DOM 中的其他位置。

4

2 回答 2

2

编辑源代码不是一个好主意。

您应该使用的是函数fnDrawCallback,每次表重绘时都会调用该函数。在这里你可以看到你需要什么:

$(document).ready(function() {
    $('#example').dataTable({"fnDrawCallback": function( oSettings ) {
      $("#upperZone").prepend($('#example_filter'));
    }});
});

http://jsfiddle.net/HEDvf/616/

更新:

如果您只想在初始化后使用它一次,那么您的函数是 fnInitComplete. http://jsfiddle.net/HEDvf/617/

于 2013-08-05T11:50:15.910 回答
1

我终于通过编辑源代码解决了这个问题。

添加了在所有 DOM 初始化后调用的回调方法。

谢谢你投票给我...

于 2013-08-04T22:49:04.513 回答