Я не могу перетащить снова после того, как перетаскиваемый будет удален. Вот мой код.
$( ".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'});
}
Когда я перетаскиваю снова после падения в красном поле в моей демоверсии, он должен вернуться к исходной позиции. Если вы вытащили только из красного ящика, тогда его также нужно перетащить и установить в исходное положение.
Вы можете использовать настраиваемую функцию перетаскивания 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'
});
}