css的position属性中,top
每次拖放结束或回归时会增加大约10像素。例如:
第一次将苹果从.sidebox拖到.dropbox时,苹果最终会呈现如下:
<div class="apple ui-draggable selected" style="position: relative; left: 0px; top: 10.1px;"></div>
第二次,我把苹果从.dropbox拖回.sidebox或者只是稍微移动一下然后让它恢复,苹果就像这样,注意top
增加了10:
<div class="apple ui-draggable selected" style="position: relative; left: 0px; top: 20.1px;"></div>
重复拖放,
top
会变得越来越大:<div class="apple ui-draggable selected" style="position: relative; left: 0px; top: 30.1px;"></div>
...
亲爱的苹果正在漂离我想要的位置,直到它离开页面。这是什么原因造成的?
简化后的代码:
// 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
的位置是固定的, 这可能会有所帮助?