javascript - 更改 jquery sortable 的排序行为

标签 javascript jquery jquery-ui jquery-ui-sortable

我有一个类似本页第二个示例的可排序对象:

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/

相关文章:

javascript - Canvas 画得不好

jQuery - 模糊,但如果单击按钮则不会

javascript - jQuery POST 在某些浏览器上不起作用

javascript - 如何在 jQuery Mobile 中顺序显示多个对话框?

javascript - 如何在javascript中获取 "the day before a date"?

javascript - 在内存中加载javascript对象的正确方法?

java - 什么相当于 Android/Java 中的 JavaScript setInterval/setTimeout?

jquery - 如何处理这个 CSS 鼠标悬停问题?

jquery - 你能解释一下为什么这个 jQuery 代码有效吗?

javascript - 如何在其输入元素上检测 jQuery UI datepicker 的向上或向下方向?