【发布时间】:2011-12-11 15:53:43
【问题描述】:
我正在使用 JQuery 1.5.1 和 JQuery UI 1.8.11。
我为一些项目添加了可排序 - 这里的任务是允许拖动排序,这一切都很好。
但我也想合并 droppable,以便可以将项目拖放到“复制我”区域 - 那里的任务是复制项目(我稍后会解决这个问题)
问题是可放置的目标位于可排序列表的底部(我不想移动它),一旦放置,可排序的项目就会移动到列表的底部。
我想做的是在 drop 事件触发时取消这种排序。
You can see my problem in action here(只需将“Item 1”拖到“Drop to Copy Item”区域,您会看到排序不会被取消)
如您所见,我在可放置的“drop”事件中尝试了以下操作(来自 JQuery UI Docs 的建议),但它似乎不起作用...
$(this).sortable('cancel');
我也愿意接受任何其他关于如何实现我正在寻找的“拖放复制”效果的建议。
谢谢
【问题讨论】:
-
取消是什么意思?取消将停止排序并将您正在排序的内容留在您离开它的确切位置。
-
@jQuerybeast:是的,这就是我想要的,“取消”会将项目返回到原始空间。因此,在我的 JSFiddle 中,如果您尝试复制项目 1,则会发生复制,并且项目 1 应该恢复到顶部......此时它移动到底部,因为这是放置事件之前的最后一个突出显示位置
-
取消不适用于可排序但可拖动。在 sortable 中,您可以取消/停止整个功能。
-
@jQuerybeast:是的,我通过在原始容器 DIV 上尝试取消来做到这一点。这得到了恢复项目的效果,但它停止了排序工作。所以我想也许我可以取消然后重新添加可排序功能 - 但这似乎也不起作用(它不会重新添加)。有什么想法吗?
-
@jQuerybeast:我已经设法解决我的问题并发布了我自己的答案。以防万一你有兴趣看看我是怎么做到的;)
标签: javascript jquery jquery-ui jquery-ui-sortable jquery-droppable