2

左のコンテナからドロップ領域にドラッグできる製品のリストを作成しています。製品はドロップ コンテナにドラッグされますが、その後 (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();

}
4

1 に答える 1

3

ui.draggable.data("uiDraggable").originalPositionの代わりに使用

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

完全な回答はこちら

于 2013-09-27T19:58:48.733 に答える