Jquery UI可拖动绝对而不是相对?

时间:2011-08-01 21:12:54

标签: jquery-ui jquery-ui-draggable

我有一个包含一些jquery draggables的div,但是如果在任何时候我从页面中删除了这些draggable中的一个,那么这可以移动其余部分,因为它们是相对的。

这是一个展示这个的小提琴: http://jsfiddle.net/VolatileStorm/aNk6e/

我建议的解决方案是draggable应该使用绝对而不是相对定位,但是我找不到这样做的方法。有没有办法做到这一点,如果没有,任何人都可以想办法吗? (为了优雅,我不接受“不要删除其他可拖动的”)。

4 个答案:

答案 0 :(得分:17)

为什么position:absolute不适合你?

由于绝对定位的元素不再是文档流的一部分,因此您的三个<div>中的每一个都放置在其包含(定位)元素的0,0处。因此,由work out the starting position of your draggables决定。

答案 1 :(得分:14)

  1. position:absolute添加到您的元素中。
  2. 在 调用.draggable之前将它们附加到DOM

答案 2 :(得分:8)

在设置要拖动的元素时,可以使用jQuery css函数将位置设置为绝对位置。

$(this).draggable().css("position", "absolute");

答案 3 :(得分:0)

也许不是最好的想法,但......你可以使用positon定位所有相关的div:relative;然后在你的或$(“document”)。ready()中包含一个函数调用,如果你正在使用jQuery,那么迭代遍历每个div将它们的相对位置转换为绝对值并将它们设置为left,top之前将它们改为位置:绝对。这里唯一的问题是你在更新样式之前需要每个div的绝对位置,以免通过迭代改变布局。