我正在使用mootools-more.1817.js
...这是我的HTML结构:
<ul id="categories">
<div id="admin">Admin Controls</div>
<li class="selected"><a href="#">Test</a>
<ul>
</ul>
</li>
<div id="admin">Admin Controls</div>
<li><a href="#">Test 2</a>
<ul>
</ul>
</li>
<div id="admin">Admin Controls</div>
<li><a href="#">Top Links</a>
<ul>
<li id="article"><a href="/1">Link 1</a></li>
<li id="article"><a href="/3">Link 2</a></li>
<li id="article"><a href="/2">Link 3</a></li>
<li id="article"><a href="/4">Link 4</a></li>
</ul>
</li>
<div id="admin">Admin Controls</div>
<li><a href="#">Lame Links</a>
<ul>
<li id="article"><a href="/9">Link 9</a></li>
<li id="article"><a href="/10">Link 10</a></li>
</ul>
</li>
<div id="admin">Admin Controls</div>
<li><a href="#">Awesome Links</a>
<ul>
<li id="article"><a href="/11">Link 11</a></li>
<li id="article"><a href="/12">Link 12</a></li>
</ul>
</li>
</ul>
所以我想做两件事:
li
项目拖动到另一个部分并让它的所有子项都使用它。例如。如果我拖动包含Top Links
链接的li,我不仅要拖动Top Links
,还要拖动div#admin
,ul
和li
那是父母li
的孩子。基本上每个li
的所有孩子。Link 2
链接从ul
拖到名为Awesome Links
的部分,并将其放在链接Link 11
和Link 12
之间。 我做到了:
window.addEvent('domready', function(){
new Sortables('#categories', {
clone: true,
revert: true,
opacity: 0.7
});
});
这样做只是拖拽li
,而不是li
的孩子。
我如何实现这些目标?
感谢。
答案 0 :(得分:1)
首先,您的div
列表中的categories
项目本身不在li
标记中,因此您的HTML无效。 ul
的唯一直接子项可以li
作为有效列表。
其次,根据文档,&#34;要启用列表之间的排序,必须使用数组或选择器传递一个或多个列表或ID#34; (http://mootools.net/docs/more/Drag/Sortables)。这意味着,要在子列表之间移动项目,必须将每个ul
传递到可排序组(不同于类别组)。这应该可以解决您的问题#2。
我还不确定为什么它不会拖动li
的全部内容,尽管可能是无效的HTML导致了问题。