我使用了一个jQuery插件(带有Scroller扩展名的DataTable),它允许我通过延迟渲染显示数千行的HTML table
。
我想将其设为sortable
(使用可排序的jQuery-UI插件)。
问题在于,当我拖动一个元素并希望将其放到较低的位置时,该表的第一个nodes
将从DOM中消失,并且会出现新的元素。所以我不再能够放弃被拖动的元素。
一个例子比长文本更好:http://jsfiddle.net/91dr6utg/
$(document).ready(function() {
$('#example').DataTable( {
data: data,
deferRender: true,
dom: "frtiS",
scrollY: 200,
scrollCollapse: true
} );
$('#example tbody').sortable({
helper: "clone",
start: function (event, ui) {
ui.item.appendTo($('#dragSave'));
ui.helper.appendTo($('#dragSave'));
},
}).disableSelection();
});
var data = [ "A lot of datas !" ];
<table id="example" class="display" cellspacing="0" width="100%">
<thead>
<tr>
<th>ID</th>
<th>First name</th>
<th>Last name</th>
<th>ZIP / Post code</th>
<th>Country</th>
</tr>
</thead>
</table>
<div id="dragSave"></div>
如果我拖动第一个元素,我不能在第90个元素之后删除它。
我执行了start
功能以防止拖动线消失。实际上,如果从DOM中删除原始node
,则sortable
插件不能再删除该元素(它不再知道它)。所以我将它移动到另一个永远不会更新的DOM容器中。
如果我们删除此功能,我们会看到原来的node
被删除大约下五十行
=&GT;好吧,这来自DOM再生
但我们仍然可以放下元素,直到九十行下
=&GT;因为从未在DOM中生成的下一行是限制
答案 0 :(得分:0)
我找到了一种不使用draggable()
但使用UIActivityViewController
。