当我的Jquery放置在三个可放置的一个上时,为什么可以拖动?

时间:2014-01-03 22:02:17

标签: jquery draggable droppable resizable

我有三个可调整大小的可放置区域和一个可拖动的区域,一旦拖到一个可放置的区域就可以调整大小。但是拖拉机并没有停留在掉落的地方。它附加到正确的可放置位置,但跳到位置,有时偏离屏幕边缘。

$('.draggable').draggable();

$( “可投放”)。可投放({

            drop: function (e, ui) {
                if ($(ui.draggable)[0].id != "") {
                    x = ui.helper.clone();
                ui.helper.remove();
                x.draggable({
                    helper: 'original',
                    tolerance: 'fit'
                });
                x.resizable({
                    aspectRatio:true,
                    minHeight: 50,
                    minWidth: 50
                });
               var id = "#" + $(this).attr("id");
               x.appendTo(id);
            }

            }
        });

$( “可投放”。)可调整大小();

jsFiddle这里:http://jsfiddle.net/gTwLe/3/

1 个答案:

答案 0 :(得分:1)

因为你正在克隆它然后摧毁原件。因此,在克隆之后,您需要设置克隆对象(x)的坐标以匹配原始坐标。

$('.draggable').draggable();


$(".droppable").droppable({

                drop: function (e, ui) {
                    if ($(ui.draggable)[0].id != "") {
                        x = ui.helper.clone();

                    x.draggable({
                        helper: 'original',
                        tolerance: 'fit'
                    });
                    x.resizable({
                        aspectRatio:true,
                        minHeight: 50,
                        minWidth: 50
                    });
                   var id = "#" + $(this).attr("id");
                   x.appendTo(id);
                    x.offset(ui.helper.offset());
                    ui.helper.remove();
                }

                }
            });

$(".droppable").resizable();

jsFiddle这里:http://jsfiddle.net/X4MmR/