jquery drag n drop恢复到原始位置不起作用

我正在制作一个产品清单,可以从左边的容器拖到掉落区域。 产品被拖到掉落容器上,但之后(X)关闭按钮激活,我们点击该按钮然后产品恢复到原始位置。 拖动产品并将其放入容器中的部件工作正常。 但在那之后我得到了这个错误

Uncaught TypeError: Cannot read property 'originalPosition' of undefined 

我的代码(jquery版本1.9和jquery ui版本1.10.3)

  $(document).ready(function () { $('.drg-bx1').droppable({ tolerance: 'fit' }); $('.mt-drg-ob').draggable({ revert: 'invalid', stop: function(){ $(this).draggable('option','revert','invalid'); $(this).find('.undo').show(); } }); $('.mt-drg-ob').find('.undo').click(function(i, e) { var $div = $(this).parent(); revertDraggable($div); }); $('.drg-bx1').droppable({ greedy: true, tolerance: 'touch', drop: function(event,ui){ // ui.draggable.draggable('option','revert',true); if (!ui.draggable.data("originalPosition")) { ui.draggable.data("originalPosition", ui.draggable.data("draggable").originalPosition); } $(this).find('.undo').show(); } }); }); function revertDraggable($selector) { $selector.each(function() { var $this = $(this), position = $this.data("originalPosition"); if (position) { $this.animate({ left: position.left, top: position.top }, 500, function() { $this.data("originalPosition", null); }); } }); $selector.find('.undo').hide(); } 

使用ui.draggable.data("uiDraggable").originalPosition代替

ui.draggable.data("draggable").originalPosition);

完全回答这里