JQuery UI:draggable不会恢复到原始位置

每次拖动时,css位置top增加约10px或恢复。 例如,

我第一次将苹果从.sidebox拖到.dropbox,苹果最终会像这样:

 

第二次,我将苹果从.dropbox拖回到.sidebox或者只是稍微移动它并让它恢复,苹果是这样的,注意top增加了10:

 

重复拖放, top变得越来越大:

 
...

所以我亲爱的苹果正在离开我想要它的位置,直到它告诉页面。 是什么导致这个?

简化代码:

  // drag and drop $( ".apple" ).draggable({ revert:true }); $( ".dropbox" ).droppable({ drop: handleDropbox }); $( ".sidebox" ).droppable({ drop: handleSidebox }); function handleDropbox(event, ui) { $(this).append(ui.draggable); $(this).droppable( 'disable' ); } function handleSidebox(event, ui) { ui.draggable.parent().droppable('option', {'disabled':false}); $(this).children('h4').after(ui.draggable); } 

编辑:不能在jsfiddle中复制它,还没弄清楚为什么..

请注意.sidebox位置是固定的,可能有帮助吗?

请检查小提琴

http://jsfiddle.net/4gFqh/7/

 $( ".apple" ).draggable({ revert:function(event,ui){ s=s+10; alert("my top position is "+s); $(this).data("draggable").originalPosition = { top:s, left:0 }; return !event; }, });