Подтвердить что ты не робот

Как исключить элемент из перетаскивания в отсортированный список?

Как я могу исключить элемент из сортируемого списка? Например, есть элемент с названием "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();
});
4b9b3361

Ответ 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"
});