jQuery UI Sortable: как предотвратить перемещение определенного элемента списка?

У меня есть этот список:

<ul>
    <li class="line"><a href="#" class="drag">header (do not sort)</a></li>
    <li class="line"><a href="#" class="drag">line one</a></li>
    <li class="line"><a href="#" class="drag">line two</a></li>
</ul>

Как я могу предотвратить перемещение первого li?


person kmunky    schedule 05.01.2010    source источник


Ответы (2)


Вы можете указать, какие элементы в Sortable действительно можно сортировать. Это должно сработать — измените HTML следующим образом:

<ul>
    <li class="line" id="header"><a href="#" class="drag">header (do not sort)</a></li>
    <li class="line"><a href="#" class="drag">line one</a></li>
    <li class="line"><a href="#" class="drag">line two</a></li>
</ul>

Затем, когда вы настроили сортировку:

$('ul').sortable({ items: 'li[id!=header]' });

Надеюсь это поможет!

person Mark Bell    schedule 05.01.2010

Вы можете явно исключить элементы (помимо того, что не включаете их):

$( ".sortable" ).sortable({
    cancel: ".disable-sort-item"
});
person Mladen Janjetovic    schedule 20.04.2015
comment
это работает очень хорошо, но как быть, когда я не хочу, чтобы родительский элемент не сортировался, но внутри него я хочу сортировать? - person Guilherme Felipe Reis; 31.01.2019