JQuery UI Sortable - 限制特定元素的下降

时间:2010-10-25 13:39:50

标签: jquery jquery-ui jquery-ui-sortable

我有一些用户可以对其进行排序的ul。我有两种不同类型的li,需要限制它们可以放入哪个列表。这是一个小例子:

<ul class="top">
    <li class=typeA">Item</li>
    <li class=typeA">Item</li>
    <li class=typeB">Item</li>
        <ul class="sub">
            <li class=typeB">Item</li>
            <li class=typeB">Item</li>
            <li class=typeB">Item</li>
        </ul>
</ul>

<ul class="top">
    <li class=typeA">Item</li>
    <li class=typeA">Item</li>
    <li class=typeA">Item</li>
</ul>
  1. TypeA只能出现在顶层,并且必须只能被放入另一个顶级组。

  2. TypeB可以显示在顶级或子级别,并且必须能够放入任一组。

  3. 此外,子ul组必须能够从一个顶级组删除到另一个顶级组。

  4. 使用以下代码,我能够实现第1点,部分第2点,但是当TypeB从子组移动到顶级组时,它可以永远不会返回:

    $(function() {
        $('.connectedSortable').sortable({
            'items': '> li',
            'connectWith': '.connectedSortable'
        });
        $('.subList').sortable({
            'items': 'li',
            'connectWith': '.connectedSortable'
        });
    });
    

    非常感谢任何帮助。

    由于

1 个答案:

答案 0 :(得分:0)

我认为只要配置一个表就不能实现这一点,因为一旦将B项移到顶层,它就会像A项一样运行。我认为你将不得不在每个表上设置事件,例如'over'事件,并编写代码以检查被移动的项目是否属于此列表。