droppable draggable在移动时重叠div

时间:2014-08-12 14:19:38

标签: jquery jquery-ui draggable droppable resizable

当我将div移动到放置区然后再移动到底部时,底部移动到顶部,然后当我移动顶部时它会做同样的事情。

如何阻止这种情况发生,所以如果我想要底部的蓝色和顶部的红色div,那么红色跳跃会跳到蓝色跳跃之下。但我不能让这个停止这样做

这里是jsfiddle http://jsfiddle.net/mvpkzzdt/

这是代码

$(document).ready(function(){
    $('.box').draggable({
        helper: "clone"
    });

    $('#main').droppable({

        drop: function (e, ui) {

            x = ui.helper.clone();

            //x.removeClass("display").addClass("area");
            x.find('.ui-resizable-handle').remove();
            x.draggable({
                containment: '#main',
            }).resizable({
                containment: "#main"
            });

            x.css({ top:ui.offset.top, left: ui.offset.left});

            x.appendTo('#main');
            ui.helper.remove();

            //editDataTypes();
        }
    });
});

1 个答案:

答案 0 :(得分:0)

经过多次尝试后我才想出来lol

这是更新的jsfiddle http://jsfiddle.net/mvpkzzdt/1/

$("#main").droppable({
    tolerance: "pointer",
    drop: function(event, ui){
        var ud = ui.draggable;
        if( ud.draggable( "option", "helper" ) == "clone" ){
            ud.clone().removeClass("display").addClass("area")
            .appendTo("#main")
                .css({
                    position: 'absolute',
                    left: ui.offset.left,
                    top: ui.offset.top
                })
                .resizable()
                .draggable({cursor: "move", containment: '#main'})
                //editDataTypes();
        }else{
        ud.css({
                position: 'absolute',
                left: ui.offset.left,
                top: ui.offset.top
            })
        }
    },
    out: function(event, ui){
        ui.draggable.remove();
    }
});