我有一个包含一些jquery draggables的div,但是如果在任何时候我从页面中删除了这些draggable中的一个,那么这可以移动其余部分,因为它们是相对的。
这是一个展示这个的小提琴: http://jsfiddle.net/VolatileStorm/aNk6e/
我建议的解决方案是draggable应该使用绝对而不是相对定位,但是我找不到这样做的方法。有没有办法做到这一点,如果没有,任何人都可以想办法吗? (为了优雅,我不接受“不要删除其他可拖动的”)。
答案 0 :(得分:17)
为什么position:absolute
不适合你?
由于绝对定位的元素不再是文档流的一部分,因此您的三个<div>
中的每一个都放置在其包含(定位)元素的0,0
处。因此,由work out the starting position of your draggables决定。
答案 1 :(得分:14)
position:absolute
添加到您的元素中。.draggable
之前将它们附加到DOM 。答案 2 :(得分:8)
在设置要拖动的元素时,可以使用jQuery css函数将位置设置为绝对位置。
$(this).draggable().css("position", "absolute");
答案 3 :(得分:0)
也许不是最好的想法,但......你可以使用positon定位所有相关的div:relative;然后在你的或$(“document”)。ready()中包含一个函数调用,如果你正在使用jQuery,那么迭代遍历每个div将它们的相对位置转换为绝对值并将它们设置为left,top之前将它们改为位置:绝对。这里唯一的问题是你在更新样式之前需要每个div的绝对位置,以免通过迭代改变布局。