Как включить перетаскивание после падения?

0

Я не могу перетащить снова после того, как перетаскиваемый будет удален. Вот мой код.

$( ".draggable" ).draggable( { revert: "invalid" } );
$( ".droppable" ).droppable( { accept: handleDrag, drop: handleDropEvent } );
function handleDrag(draggable){
   return true;
}
function handleDropEvent (event, ui) {
   ui.draggable.position({of: $(this),my: 'left top',at: 'left top'});  
}

Когда я перетаскиваю снова после падения в красном поле в моей демоверсии, он должен вернуться к исходной позиции. Если вы вытащили только из красного ящика, тогда его также нужно перетащить и установить в исходное положение.

демонстрация

Теги:

1 ответ

3
Лучший ответ

Вы можете использовать настраиваемую функцию перетаскивания revert и если элемент не выпадет на droppable, то его положение будет восстановлено вручную.

Посредством вручную я имею в виду, что вы можете сохранить позицию элемента orignal в данных jQuery (например, OrDraggable), а затем использовать его для извлечения исходной позиции элемента.

Код:

$(".draggable").draggable({
    revert: handleRevert
});

$(".draggable").data("orDraggable",$(".draggable").offset());

$(".droppable").droppable({
    drop: handleDropEvent
});

function handleRevert(e) {
    if (e === false) {
        $(this).data("uiDraggable").originalPosition = $(this).data("orDraggable");
        return true
    }
}

function handleDropEvent(event, ui) {
    ui.draggable.position({
        of: $(this),
        my: 'left top',
        at: 'left top'
    });
}

Демо: http://jsfiddle.net/IrvinDominin/SQL2v/

  • 0
    Большое спасибо. Мне нужно позиционировать в исходное положение, как это сделать? jsfiddle.net/SQL2v/2
  • 0
    @NavinRauniyar Должно быть сохранено исходное положение, я проверяю
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню