jQuery-限制整个可排序列表中子列表中的可拖放容量

jQuery-限制整个可排序列表中子列表中的可拖放容量,jquery,html-lists,jquery-ui-sortable,droppable,Jquery,Html Lists,Jquery Ui Sortable,Droppable,是的,这个可能有点混乱-我有一个可排序的列表,在这个列表中我将有一些子列表,它们也是可排序的,并且可以从嵌套的总体列表中接受列表元素。我需要做的是防止这些内部列表在达到一定数量的子元素后接受更多的元素 这就是我迄今为止所尝试的: javascript方面: $(document).ready(function() { $(".sortable").sortable({ connectWith: ".sortable", revert:true })

是的,这个可能有点混乱-我有一个可排序的列表,在这个列表中我将有一些子列表,它们也是可排序的,并且可以从嵌套的总体列表中接受列表元素。我需要做的是防止这些内部列表在达到一定数量的子元素后接受更多的元素

这就是我迄今为止所尝试的:

javascript方面:

$(document).ready(function() {
    $(".sortable").sortable({
        connectWith: ".sortable",
        revert:true
    }).disableSelection();

    $(".inner").droppable({
        accept: function(d) {
            // this here refers to the inner list, correct?
            if ($(this).children().length > 1) {
                return false;
            }
            else {
                return true;
            }
        },
        drop: function() {
        // blah blah blah
        }
    });
});
HTML端:

        <ul id="mainlist" class="sortable">
            <li class="ui-state-default">Item 1</li>
            <li class="ui-state-default">Item 2</li>
            <li class="ui-state-default">Item 3</li>
                   <li class="ui-state-default">Item 4</li>
            <li class="ui-state-default">
                Place here:[[  &nbsp;&nbsp;
                <ul class="sortable inner">
                           <li class="ui-state-default">Item 5</li>
                </ul>
                &nbsp;&nbsp;
                ]]
            </li>
        </ul>

有人看到我做错了什么吗?有更好的方法吗?

我不知道为什么你的方法不起作用。我不确定我会做得更好。如果我有这个任务,我会在drop事件中添加一个函数,这样在drop事件之后,它会检查它的子项,如果已经达到限制,那么就禁用drop目标。这样,如果您启用了任何反馈,用户可以在他们放弃之前判断它是否有效。我正在考虑类似的方法-只需注意被拖动的元素首先在哪里,然后如果子元素的数量太多,直接将其放回那里。这看起来很不雅观,我希望有更好的办法。