Jquery перетаскиваемый не работает с сдерживанием
Мое приложение содержит все div с абсолютным свойством css position. Так как draggable занимает относительную позицию, мне нужно переопределить его с помощью margin-left и вычислить левое значение для перетаскиваемого div. Работает нормально, если не указана локализация,
<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");
}
});
Мне нужно сдерживание, чтобы ограничить перетаскиваемое перемещение div из коробки, но перетаскиваемый левый не работает.
Скрипка: http://jsfiddle.net/2TpPS/
Я не могу найти в чем проблема. Кто-нибудь может предложить мне решение?
1 ответ
Просто удалите все ненужные сбросы полей, которые вы делаете. Сделайте свой jQuery просто:
$("#draggable").draggable({
axis: "x",
containment: "#main"
});
ДЕМО: http://jsfiddle.net/2TpPS/3/
Если вы хотите, чтобы окно можно было перетаскивать в любом направлении, удалите axis: "x"
,