scriptaculous可排序树 - 防止节点进入子/父列表

时间:2012-04-24 14:33:45

标签: javascript html scriptaculous

处理使用scriptaculous并遇到问题的旧项目。我目前有一个如下所示的树结构:

Item 1
  + Item 1a
    + Item 1aa
    + Item 1ab
  + Item 1b 
Item 2
  + Item 2a
  + Item 2b
    + Item 2ba
    + Item 2bb

通过现在使用树选项进行排序设置的方式,用户可以将项目2bb 拖动到项目2a 中,我试图阻止它。我想将拖动的项目保留在其父类别中。因此,如果项目2b 下存在项目2ba ,则用户无法将该项目拖动到该父项目之外。我正在使用的创建代码非常简单:

Sortable.create('cats', {tree:true,scroll:window,treeTag:'ul',tag:'li', onChange:function(){$('save-cats').style.visibility='visible';}});

,结构由标准<li>标记组成(请注意嵌套的<ul>标记:

<ul>
<li>Item 1</li>
<li>
   Item 2
   <ul>
      <li>Item 2a</li>
   </ul>
</li>
</ul>

这甚至可以用scriptaculous,还是我必须升级到其他东西?

我忘了提到这是一个动态列表。我不知道收容选项是否是我正在寻找的,但它似乎不可能,因为我没有唯一的ID。

更新

这有帮助,我一直在玩弄以下代码:

new Draggable('cats',{revert:true});

    Droppables.add('cats', { 
    onDrop: function(element) 
            {
                return false;
            }});

cats是主要ul元素的ID。 onDrop正在解雇,但我无法让它恢复或“不接受”该项目。我假设如果我可以这样做,我可以将当​​前父节点与新父节点进行比较,如果它们不相同,则推回元素。

0 个答案:

没有答案