This is probably very easy to do, but I always think too complicated.
I've just set up a simple test with #draggable / #droppable with a fixed width/height + float:left.
I then want a reset button to be able to reset the #draggable to it's original state after it's been snapped to a #droppable. (bottom line)
$(document).ready(function() {
$("#draggable").draggable
({
revert: 'invalid',
snap: '#droppable',
snapMode: 'corner',
snapTolerance: '22'
});
});
$("#droppable").droppable
({
accept: '#draggable',
drop: function(event, ui)
{
$(this).find("#draggable").html();
}
});
$(".reset").click(function() {
/* What do I put here to reset the #draggable to it's original position before the snap */
});
Draggable items don't keep track of their original position that I know of; only during drag and to be snapped back. You can just do this on your own, though:
$("#draggable").data({
'originalLeft': $("#draggable").css('left'),
'origionalTop': $("#draggable").css('top')
});
$(".reset").click(function() {
$("#draggable").css({
'left': $("#draggable").data('originalLeft'),
'top': $("#draggable").data('origionalTop')
});
});