我正在制作一个可以从左侧容器拖到拖放区域的产品列表。产品被拖到掉落容器上,但之后(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();
}
答案 0 :(得分:3)
使用ui.draggable.data("uiDraggable").originalPosition
代替
ui.draggable.data("draggable").originalPosition);