2

我想要 3 个列表,其中包含列表 A 或列表 B 中的一个项目应该能够移动到列表 C,但不能从列表 B 移动到列表 A,反之亦然。如果列表 C 中的项目最初来自列表 A,则列表 C 中的项目也不应该移动到列表 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');
            }
        }
    });

我有“这里”的地方是我一直试图插入这样一个条件的地方。目前,我只尝试将限制放在一个列表上,因为如果我能让它发挥作用,第二个应该很容易。

4

1 回答 1

0

我认为您应该使用可拖动/可放置组合而不是可排序,因为您尝试使用已经实现的很多逻辑。所以列表 A 和 B 将有可拖动的元素,而列表 C 是可放置的。

droppable 有一个“接受”选项,您可以在其中为可以删除的元素设置 css 选择器过滤器。

{ accept: ".only-these" }
于 2012-11-20T09:58:14.003 回答