处理使用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正在解雇,但我无法让它恢复或“不接受”该项目。我假设如果我可以这样做,我可以将当前父节点与新父节点进行比较,如果它们不相同,则推回元素。