Jquery 公差:对于离可拖动的中间最近的可拖放的中间?

Jquery 公差:对于离可拖动的中间最近的可拖放的中间?,jquery,jquery-ui,draggable,jquery-ui-sortable,droppable,Jquery,Jquery Ui,Draggable,Jquery Ui Sortable,Droppable,我有一个项目清单使用拖拽和下拉。它包含可以移动到可拖放文件夹中的项目。您还可以更改项目的顺序,以不同的顺序拖放它们。但精度不高。因此,当前的公差选项中没有一个像我希望的那样工作 正如标题所说;我希望drop能够用于离Dragable中间最近的Dragable中间。这也意味着每滴只能有一个滴区。我怎样才能做到这一点 以下是代码的可拖放部分: // Handle base.$el.find(base.options.handle).droppable(

我有一个项目清单使用拖拽和下拉。它包含可以移动到可拖放文件夹中的项目。您还可以更改项目的顺序,以不同的顺序拖放它们。但精度不高。因此,当前的公差选项中没有一个像我希望的那样工作

正如标题所说;我希望drop能够用于离Dragable中间最近的Dragable中间。这也意味着每滴只能有一个滴区。我怎样才能做到这一点

以下是代码的可拖放部分:

// Handle
            base.$el.find(base.options.handle).droppable(
            {
                  tolerance  : "intersect"
                , hoverClass : "tree_hover"
                , drop       : function(event, ui)
                {
                    //console.log(pos.target(), pos.section());
                    base.pos.targetX = ui.offset.left;
                    base.pos.targetY = $(this).offset().top;
                    base.pos.targetH = $(this).height();

                    $(this).removeClass('tree_hover');

                    var dropped = ui.draggable;
                    dropped.css({ top: 0, left: 0 });

                    var me = $(this).parent();

                        if (me == dropped)
                            return;

                    ui.draggable.addClass('moved');

                    var subbranch = me.children("ul");

                    switch (base.pos.target())
                    {
                        case 'on':

                            //add as a child
                            if (subbranch.size() == 0)
                            {
                                //add new ul
                                var newb = $('<ul></ul>');
                                newb.append(dropped);
                                me.append(newb);
                            } else {
                                subbranch.eq(0).append(dropped);
                            }

                            if (!me.hasClass('parent')) me.addClass('parent expanded');

                            break;

                        case 'above':

                            //add before
                            dropped.insertBefore(me);
                            break;

                        case 'below':

                            //add after
                            dropped.insertAfter(me);
                            break;  
                    }

                    me.removeClass('on above below');

                    //remove parent from items that no longer contain children
                    $('ul.tree li.parent ul').filter(function()
                    {
                        return $(this).children().length == 0;

                    }).closest('li').removeClass('parent').end().remove();

                    //callback
                    if (base.options.itemMoved != null)
                    {
                        base.options.itemMoved(base.getMoved());
                    }

                }, over: function(e, ui)
                {
                    base.pos.targetX = ui.offset.left;
                    base.pos.targetY = $(this).offset().top;
                    base.pos.targetH = $(this).height();

                }, out: function(e, ui)
                {
                    $(this).closest('li').removeClass('on above below');
                }
            });