Как включить все дочерние элементы DOM-элемента, который нужно перетаскивать с помощью плагина Sortable для MooTools?
Я использую 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
Хочу перетащить не только слова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
,
Как мне этого добиться?
Благодарю.
1 ответ
Во-первых, у вас есть недействительный HTML, имея div
предметы в вашем categories
список, которого нет в li
сами теги. Единственные непосредственные дети ul
может быть li
для действительного списка.
Во-вторых, согласно документации: "Чтобы включить сортировку между списками, один или несколько списков или идентификаторов должны передаваться с использованием массива или селектора" (http://mootools.net/docs/more/Drag/Sortables). Это означает, что для перемещения элементов между вашими подсписками, каждый ul
должен быть передан в группу сортируемых материалов (отличную от группы категорий). Это должно решить вашу проблему № 2.
Я еще не уверен, почему бы не перетащить все содержимое li
, хотя это может быть неправильный HTML вызывает проблемы.