Jquery перетаскиваемый не работает с сдерживанием

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

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");       
    }
});

Мне нужно сдерживание, чтобы ограничить перетаскиваемое перемещение div из коробки, но перетаскиваемый левый не работает.

Скрипка: http://jsfiddle.net/2TpPS/

Я не могу найти в чем проблема. Кто-нибудь может предложить мне решение?

1 ответ

Просто удалите все ненужные сбросы полей, которые вы делаете. Сделайте свой jQuery просто:

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

ДЕМО: http://jsfiddle.net/2TpPS/3/

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

Другие вопросы по тегам