删除拖动后我无法再次拖动。这是我的代码。
$( ".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'});
}
当我在我的演示中放下红色框后再次拖动它应该回到原来的位置。如果只是拖出红色框,那么它也应该被拖动并设置为它的原始位置。
答案 0 :(得分: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'
});
}