JQueryUI draggable устанавливает "position: relative" на мои перетаскиваемые divs
У меня возникла странная проблема с jQuery, перетаскиваемым сегодня утром, интересно, кто-нибудь еще встретил это.
У меня много маленьких div внутри большого div. Они абсолютно позиционируются: "позиция: абсолютная" в CSS для своего класса, причем сама фактическая позиция рассчитывается и устанавливается в JS по требованию.
Теперь я добавляю функциональность, позволяющую перетаскивать эти divs.
Но, как только я делаю один перетаскиваемый, ему присваивается "позиция: относительная" непосредственно на элементе, что, как вы можете себе представить, серьезно помешает позиции на экране.
Кто-нибудь знает, почему он меняет "позицию" как это или как сказать это не?
EDIT:
Только что понял, что есть довольно очевидный ответ, который смотрит мне в лицо - важно мое положение: абсолютное! Кажется, это исправить. НО меня все еще интересует, если кто-нибудь знает, почему он устанавливает "позицию: относительный", как это (и не делает его ни настраиваемым, ни первым, если требуется место)... Мне интересно, какие проблемы я только что сохранил для себя; -)
Ответы
Ответ 1
"Я столкнулся с той же проблемой сегодня. Причина в том, что я применял draggable()
к динамически создаваемому элементу. Я" позже "добавлял его к dom
. Элемент должен быть в dom
, когда вы применяете draggable()
(если стиль применяется классом). Короче говоря, когда он не находит положения, прикрепленного к element
, он добавляет relative
." - Джашвант
Firs do: .append(jElement)
Затем: jElement.draggable()
По какой-то причине Джашвант поставил свой ответ в комментарии к вопросу. Поэтому я подумал, что было бы удобно другим, чтобы отправить его здесь.
Ответ 2
Это также случилось со мной, но только в Chrome. Причина?
Это было так:
$("#div-popup").draggable({ handle: ".top", containment: 'document'});
Затем я удалил параметр сдерживания, например:
$("#div-popup").draggable({ handle: ".top"});
Итак, это о браузере (в данном случае Chrome), который устанавливает позицию Relative, когда вы указываете, какая оболочка будет перетаскиваться.