У меня есть следующий код, который работает, хотя он работает довольно медленно, я чувствую. То, что я хочу сделать, позволяет <li> свободно перемещаться в существующем <ul> или перемещать их на уровень. Я также хочу иметь возможность создавать иерархии, поэтому, если вы перетащили <li> под другой <li>, который создал бы иерархию. Я думаю, что в этом смысле мне пришлось бы сделать <ul> под каждым <li> на всякий случай. Я только хочу ограничить его на 2 или 3 уровня.
$("#sort_list").sortable({
containment: 'parent',
axis: 'y',
revert: true,
opacity: 0.8
});
$(".sub_list").sortable({
containment: 'parent',
axis: 'y',
revert: true,
opacity: 0.8,
});
$("#sort_list").disableSelection();
<ul id="sort_list">
<li>one</li>
<li>two
<ul class="sub_list">
<li>sub one</li>
<li>sub two</li>
</ul>
</li>
<li>three</li>
<li>four</li>
</ul>
