2012-12-14 147 views
26

如何从排序列表中排除元素?例如,有一个类名为'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的排序,jQuery的not显然是行不通的......

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

回答

35

您需要使用取消。

参见工作示例here

JS:

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

由于@Zephyr指出的那样,这使你可以重新安排拖动兄妹的位置,如果你想避免这种情况,使用owise1 approach

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

谢谢大家的帮助! – laukok

+0

@lauthiamkok没有问题,我刚刚适应了我的答案你的具体问题,所以检查出来。 :) – Trufa

+0

是的,我注意到你编辑了答案。感谢编辑! :-D – laukok

20

你可以使用可排序的“items”选项:

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

example

或...

​​

example

+0

这也适用于''包含数据集的标签:'$(“#table”)。sortable({items:“[data-real-line]”});'。 –

3

你可以明确地排除的项目:

$(".sortable").sortable({ 
    cancel: ".disable-sorting" 
}); 
相关问题