40

如何从可排序列表中排除元素?例如,有一个类名为“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 可排序,jquerynot显然不起作用...

$(function() {
    $( ".sortable:not(.note)" ).sortable(
    }).disableSelection();
});
4

3 回答 3

50

您需要使用取消。

请参阅此处的工作示例。

JS:

$(function() {
    $('.sortable').sortable();
    $('.sortable').disableSelection();
    $('.sortable').sortable({ cancel: '.note' });
});​

正如@Zephyr 指出的那样,这让您可以通过拖动兄弟姐妹来重新排列位置,如果您想避免这种情况,请使用owise1 方法

$('.sortable').sortable({
    items : ':not(.note)'
});
于 2012-12-14T20:32:05.620 回答
24

您可以使用 sortable 的“ items ”选项:

$( ".sortable" ).sortable({
    items : 'li'
});

例子

或者...

$( ".sortable" ).sortable({
    items : ':not(.note)'
});

例子

于 2013-07-17T21:15:27.727 回答
5

您可以通过以下方式明确排除项目:

$( ".sortable" ).sortable({
     cancel: ".disable-sorting"
});
于 2016-08-17T14:55:38.137 回答