Как исключить элемент из перетаскивания в отсортированный список?
Как я могу исключить элемент из сортируемого списка? Например, есть элемент с названием "note" класса, в котором я не хочу перетаскивать?
<ul class="sortable">
<li id="item_3">Item 3</li>
<li id="item_4">Item 4</li>
<li id="item_5">Item 5</li>
<p class="note">This is a note only</p>
</ul>
jquery ui sortable, jquery not
явно не работает...
$(function() {
$( ".sortable:not(.note)" ).sortable(
}).disableSelection();
});
Ответы
Ответ 1
Вам нужно отменить отмену.
См. рабочий пример здесь.
Js:
$(function() {
$('.sortable').sortable();
$('.sortable').disableSelection();
$('.sortable').sortable({ cancel: '.note' });
});
Как указывает @Zephyr, это позволяет вам повторно расположить позицию, перетаскивая братьев и сестер, если вы хотите этого избежать, используйте owise1 подход:
$('.sortable').sortable({
items : ':not(.note)'
});
Ответ 2
Вы можете использовать отсортированную опцию items:
$( ".sortable" ).sortable({
items : 'li'
});
пример
или...
$( ".sortable" ).sortable({
items : ':not(.note)'
});
пример
Ответ 3
Вы можете явно исключить элементы с помощью:
$( ".sortable" ).sortable({
cancel: ".disable-sorting"
});