【发布时间】:2012-04-21 21:45:40
【问题描述】:
我有多个并排的可排序列表。您可以调整 div 的宽度以覆盖其他列表。这使得一项可以成为多个列表的一部分。
我想在没有任何可排序的 div 重叠的情况下这样做。
请参阅http://jsfiddle.net/2J6af/ 的小提琴
编辑:如果您转到上面的小提琴并扩展可排序项目的宽度,然后将其移动并放下。您会看到它与其他可排序项目重叠。我希望安排所有可排序的项目,以免重叠。
编辑:按照@KateA 的建议,我再次经历了Dealing with overlapping jQuery sortable lists,虽然它很相似,但它讨论的是列表重叠而不是覆盖多个列表的可排序项目。
编辑:在成品中将有 7 个并排的列表,我需要在用户放下一个项目后以特定的顺序重新排列排序。我知道你可以在 sort: 事件中添加一个函数,也许这是重新排列和检查/更正任何重叠的可排序项目的关键函数?
编辑:我还注意到,可排序项目在拖动时的行为会有所不同,具体取决于您是否使用左手柄或右手柄调整了它的大小。它对您悬停在哪个列表上感到困惑。例如如果您使用左手柄调整大小并拿起它并尝试将其放在中间或右侧列表中,它将下降到鼠标指针左侧的下一个列表,而不是鼠标下方显示空占位符的位置指针。
编辑:jquery fullCalendar 完全符合我的需要,但他们是如何做到的? http://arshaw.com/fullcalendar/
编辑:我一直在努力将小提琴扩展到我的可分类知识范围内,你认为我在正确的轨道上吗? http://jsfiddle.net/2J6af/17/
【问题讨论】:
-
在问这个问题之前我已经看过那个帖子,但这是一个不同的问题。
-
可以绑定
resizable事件,找出元素现在跨越多少个列表,然后在元素跨越的每个列表上的相同位置(相同索引)放置占位符元素。 -
@mikeycgto 这听起来像是一个合适的主意,但我不知道如何从 UI 获取该信息,或者如何在放置后手动更改订单?在我的第四次编辑中也存在拖动问题。我注意到 fullCalendar 只允许在右侧调整大小,这可能会有所帮助。
标签: jquery jquery-ui-sortable resizable