jQuery UI Sortable:在拖动时保持sortable-helper作为列表更改

时间:2011-06-29 17:45:02

标签: jquery jquery-ui jquery-ui-sortable

我有一个元素列表并使用jQuery UI Sortable我可以拖动列表并对其进行排序。现在棘手的部分是这个列表不断变化。有推送请求,这个列表随着您的拖动而增长。我有一切工作,除非用户拖动并添加新的列表项,sortable-helper(被拖动的列表项)无法在此实时列表中排序。我最终得到了错误:“无法调用方法'insertBefore'的null”。我试过调用$(“#sortable”)。sortable(“refresh”)但是在你使用它时似乎没有对列表产生影响。

<ul id="sortable">
    <li>one</li>
    <li>two</li>
    <li>three</li>
</ul>

有没有办法维护用户拖动的可排序助手,因为这个实时列表正在更新?

谢谢!

1 个答案:

答案 0 :(得分:0)

当您开始拖动项目时,您需要锁定列表。这可以通过简单地使用变量ie来实现:var list_locked = 1;在将更多列表项添加到列表之前检查。在安全添加更多项目之前,将项目动态添加到列表的机制需要等待list_locked = 0。传入的项目可以存储在一个数组中。当用户开始拖动时以及用户开始对列表进行排序时,会有jQuery UI发布的事件。使用这些事件可以知道何时锁定列表。