2013-11-07 3 views
1

Мое приложение содержит все свойства div с абсолютным положением позиции CSS. Поскольку draggable занимает относительное положение, мне нужно переопределить его с помощью margin-left и вычислить левое значение для перетаскиваемого div. Он отлично работает, если сдерживание не указано,
JQuery draggable не работает с защитой

http://jsfiddle.net/W42A4/

<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/

Я не могу найти то, что проблема есть. Может ли кто-нибудь предложить мне решение?

+0

Зачем вам нужно повторно установить 'left' и' margin'? Если элемент был перетаскиван, зачем вам нужно снова его перемещать при капле? –

+0

@RoryMcCrossan: Im, создающее приложение, подобное диаграмме gantt. Каждый сегмент является абсолютным положением и основан на их маржи-левом значении. Расчет даты выполняется. Перетаскивая, позиция сегмента становится относительной и добавляет свойство left, а не margin-left , поэтому вычисления не работают идеально. Есть ли способ для этого сценария, что я сделал в скрипке? – Dhivi

ответ

1

Просто выньте все ненужные сбросы полей, которые вы делаете. Иметь свой JQuery просто:

$("#draggable").draggable({ 
    axis: "x", 
    containment: "#main" 
}); 

DEMO: http://jsfiddle.net/2TpPS/3/

Если вы хотите, чтобы окно, чтобы иметь возможность быть втянутой в любом направлении удалить axis: "x".

+0

Да, это работает, когда я тоже пробовал .. может уставить комментарий на мой комментарий выше, что объясняет сценарий .. – Dhivi