Мое приложение содержит все свойства div с абсолютным положением позиции CSS. Поскольку draggable занимает относительное положение, мне нужно переопределить его с помощью margin-left и вычислить левое значение для перетаскиваемого div. Он отлично работает, если сдерживание не указано,
JQuery draggable не работает с защитой
<div id="main"><div id="draggable">Drag me</div></div>
$("#draggable").draggable({
axis:"x",
containment: "#main",
stop: function(e, ui) {
var el = $(this);
var newLeft = $(el).css("left");
var newmarginLeft = $(el).css("marginLeft");
var totalmarginShift = parseFloat(newLeft) + parseFloat(newmarginLeft);
el
.css("marginLeft", totalmarginShift)
.css("left", "")
.css("top", "")
.css("position", "absolute");
}
});
мне нужно сдерживание, чтобы ограничить движение перемещаемой Див из коробки, но перетаскиваемые слева не работает.
Fiddle: http://jsfiddle.net/2TpPS/
Я не могу найти то, что проблема есть. Может ли кто-нибудь предложить мне решение?
Зачем вам нужно повторно установить 'left' и' margin'? Если элемент был перетаскиван, зачем вам нужно снова его перемещать при капле? –
@RoryMcCrossan: Im, создающее приложение, подобное диаграмме gantt. Каждый сегмент является абсолютным положением и основан на их маржи-левом значении. Расчет даты выполняется. Перетаскивая, позиция сегмента становится относительной и добавляет свойство left, а не margin-left , поэтому вычисления не работают идеально. Есть ли способ для этого сценария, что я сделал в скрипке? – Dhivi