jQuery-UI 可拖动和可排序

Posted

技术标签:

【中文标题】jQuery-UI 可拖动和可排序【英文标题】:jQuery-UI Draggable and Sortable 【发布时间】:2011-12-11 07:48:52 【问题描述】:

所以我一直在使用这个示例:http://jqueryui.com/demos/draggable/#sortable,并且我已经在我的产品上完成了它。不过,我想做两个重要的改变。

    我不希望第二个列表(在我的示例中为 toList)可以自行排序。我只希望它接受第一个列表中的项目(在我的示例中为 fromList)。

    当用户将一个项目从第一个列表 (fromList) 拖放到第二个列表 (toList) 中时,我希望将该项目强制到底部。

建议?这是迄今为止我所拥有的工作小提琴。 http://jsfiddle.net/CrtFD/

【问题讨论】:

【参考方案1】:

尝试将droppable 用于您的 toList:

编辑:以下每cmets:

http://jsfiddle.net/abzYK/

jQuery(document).ready(function()
    jQuery("#fromList li").draggable('destroy').draggable(
        connectToSortable: "#toList",
        revert: "invalid",
        containment: '#equipCont',
        helper: function(e, ui) 
            return jQuery(this).clone().css('width', jQuery(this).width());
        
    );
    jQuery("#toList").droppable('destroy').droppable(
        drop: function(e, ui) 
            var dragClone = jQuery(ui.draggable).clone();
            jQuery("#toList").append(dragClone);
        
    );
    jQuery("ul, li").disableSelection();
);
​

【讨论】:

嗯,可能是在正确的道路上,但你的例子有两个问题。 1 它不再克隆项目 fromList 实际上是移动它。 2 一旦我将一个项目移动到 toList 中,它仍然是可拖动的。 这就是我完成它的方法,尽管使用了你的代码,所以为你 +1。 jsfiddle.net/abzYK【参考方案2】:

你希望你的 toList 是 Droppable,而不是 Sortable。这个例子似乎描述了你想要完成的事情:http://jqueryui.com/demos/droppable/#shopping-cart

【讨论】:

与上述相同的问题。尽管它确实正确处理了克隆,但第二个列表中的项目仍然是可拖动的。

以上是关于jQuery-UI 可拖动和可排序的主要内容,如果未能解决你的问题,请参考以下文章

可拖动+可排序和可滚动的 div

可排序、可拖放和可拖动的容器

Jquery UI 结合了可排序和可拖动

可拖动和可排序的 Portlet // jQuery

JQuery 可排序和可拖动的行为

jQueryUI 可排序和可拖动目标不会水平滚动以进行放置,但会进行排序