JQuery UI Draggable Absolute вместо относительного?

У меня есть div, содержащий несколько перегрузок jquery, однако, если в любой момент я удаляю одну из этих перетаскиваемых страниц со страницы, это может перемещать остальные из них, поскольку они расположены с относительным.

Вот скрипка, демонстрирующая это: http://jsfiddle.net/VolatileStorm/aNk6e/

Мое предлагаемое решение состоит в том, что draggable должен использовать абсолютное, а не относительное позиционирование, однако я не могу найти способ сделать это. Есть ли способ сделать это, а если нет, может кто-нибудь подумать об этом? (Для элегантности я не буду принимать "не удалять другие перетаскиваемые" ).

Ответы

Ответ 1

Почему position:absolute не работает?

Так как абсолютно позиционированные элементы больше не являются частью потока документа, каждый из трёх <div> помещается в 0,0 его содержащего (позиционированного) элемента. Таким образом, вам решать исходную позицию ваших перетаскиваний.

Ответ 2

  • Добавьте position:absolute к вашим элементам.
  • Прикрепите их к DOM перед вызовом .draggable.

Ответ 3

Вы можете установить абсолютное положение, используя функцию jQuery css при установке элемента для перетаскивания.

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

Ответ 4

Возможно, не лучшие идеи, но... Вы могли бы позиционировать все соответствующие div с помощью positon: relative; а затем включить вызов функции в ваш или $( "document" ). ready(), если вы используете jQuery, который выполняет итерацию через каждый из divs, чтобы перевести их относительные позиции в абсолютные и установить их как их левое, верхнее изменяя их в положение: абсолютное. Единственная проблема заключается в том, что вы хотите, чтобы каждая позиция Divs была абсолютной до обновления их стилей, чтобы не изменять макет с помощью итерации.