使用sortable我如何禁止移动到特定列表的特定类的项目

时间:2012-11-20 09:50:16

标签: jquery jquery-ui

我希望有3个列表,列表A中的项目或列表B应该能够移动到列表C但不能从列表B移动到列表A,反之亦然。此外,列表C中的项目如果最初来自列表A则不能移动到列表B,如果列表A来自列表B,则列表A也相同。在我尝试解决此问题时,列表A中的所有项目都有一个特定的类别和列表B中的项目是另一个类。

我到目前为止的代码是:

    $(function () {
    $("ul").sortable({
        connectWith: "ul",
        beforeStop: function (ev, ui) {
            if ($(ui.item).hasClass('ui-state-default') && $(ui.placeholder).parent()[0] == $HERE) {
                $(this).sortable('cancel');
            }
        }
    });

我在哪里“HERE”是我试图插入这种情况的地方。现在我只是试图将限制放在一个列表中,因为如果我可以让它工作第二个应该很容易。

1 个答案:

答案 0 :(得分:0)

我认为你应该使用draggable / droppable组合而不是sortable,因为你已经尝试使用了许多已经实现的逻辑。因此,列表A和B将具有可拖动元素,列表C可放置。

droppable有一个'accept'选项,您可以在其中设置可以删除的元素的css选择器过滤器。

{ accept: ".only-these" }