我有一个类似本页第二个示例的可排序对象:
http://jqueryui.com/demos/sortable/items.html
sortable 是目标的混合:
- 那些可以拾取和重新排列的
- 无法拾取的禁用元素(但为掉落目标)。
问题在于组件解释我的排序意图的方式。例如,拾取以下列表的第一个元素并将其拖动到第四个位置将如下所示:
A B C X X ==> B C X A X
这里的 X 表示禁用的项目。
在我的应用程序中,我希望排序行为有所不同。当拾取目标并将其放置在禁用项目(X)上时,列表不应移动以容纳目标,而是目标和禁用项目应该交换位置。
使用与之前相同的示例(从第 1 位拖到第 4 位):
A B C X X ==> X B C A X
如果放置目标是正常的(即未禁用),行为应该与以前相同(从第 1 拖到第 3):
A B C X X ==> B C A X X
把它想象成想要在日历上重新安排约会,当您从一个日期中选择一个约会并将其放到一个空的日期时,您不希望其他约会在一天内拖延。
最佳答案
这不能完全回答您的问题,但我认为您不应该在不适合的情况下强制使用现成的解决方案。
我认为您应该创建自己的控件来保留元素并使用 jquery-ui 的可拖动对象来实现行为。您的用例在一些基本的行为逻辑上与示例不同。
如果你有更多的需求,这对 future 也是有益的。
关于javascript - 更改 jquery sortable 的排序行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8044079/