【问题标题】:jQuery Drag & drop- reorderjQuery拖放-重新排序
【发布时间】:2013-04-12 20:10:12
【问题描述】:

我有一些拖放,当一个人将一个项目拖到一个放置区域时,我会发生的是让剩余的可拖动项移动到开放区域。例如:

{A} {1}

{B} {2}

{C} {3}

如果您将 {3} 向上拖动到 {B},它将锁定到 {B},然后 {2} 应该向下移动到 {C} 所在的位置...

任何想法如何做到这一点? ALSO** 可拖动对象必须捕捉/锁定到可放置区域。

【问题讨论】:

  • @roasted 啊不错的收获。
  • 定位代码会如何改变?它不同,因为它使用拖放不可排序...
  • 如果您没有答案,为什么要发帖?我正在寻找有答案的人......为可排序提供的解决方案不起作用。所以,我正在尝试使用拖放。如果您没有可行的答案,请停止发送垃圾邮件。
  • 不幸的是,它的行为与 jQuery 的可排序...

标签: jquery draggable jquery-ui-draggable jquery-ui-droppable


【解决方案1】:

好的,所以我终于找到了一个可行的解决方案。如果有人对此感兴趣,这就是我所做的:

首先,我创建了一堆拖放。每个可拖动对象都有一个可放置区域。然后,对于可拖动对象的定位,我创建了一个变量来存储不同的位置(基于 obj 高度和边距等。可拖动对象具有绝对位置,这是基于父 DIV 完成的。所以当我稍后获得位置时,我可以使用它们来重新定位对象。

然后,我为 droppables 创建了一个 drop 函数,这样一旦对象被丢弃,它就会记录对象被丢弃的位置,并将其放入已经被占用的位置数组中。因此,如果我在 [步骤 2] 上放置了一些东西,并且它从顶部向下 220 像素,那么我将其记录在数组中。然后,紧接着,我检查所有的对象,看看哪些对象被丢弃了。以便我知道我可以移动哪些对象。

现在我有了可以移动的对象和可用位置。然后,我简单地浏览未移动的开放点和对象列表,并将它们简单地替换为开放位置。而不是试图仅在元素上重新定位。我基本上是重新定位一切,不管一开始是否很好。

我希望这对某人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多