如何禁用列表的第一项可排序和删除目标

我有一个项目列表,我想让列表中的第一个项目不可移动且不可移动。 列表中的第一项应始终作为列表中的第一项。 但是,我似乎无法让它工作。这是我的排序代码:

jQuery -> $('#lineup').sortable( axis: 'y' items: ".ui-state-enabled" cancel: ".ui-state-disabled" update: -> $.post($(this).data('update-url'), $(this).sortable('serialize')) ); 

我正在使用content_tag_for来加载它:

 %ul.nav.nav-tabs.nav-stacked#lineup{"data-update-url" => sort_lineups_url} - @pieces.each_with_index do |piece, index| - if index == 0 = content_tag_for(:li, piece, :class => 'ui-state-disabled') do = link_to "#{(index + 1).to_s + ' - ' + piece.name}", '#' - else = content_tag_for(:li, piece, :class => 'ui-state-enabled') do = link_to "#{(index + 1).to_s + ' - ' + piece.name}", '#' 

我究竟做错了什么? 我没做什么似乎阻止第一项被分类和/或移动

嗯,很难说肯定。 我以前没有使用可排序/可拖动的组合,而且UI文档没有明确地解决可排序/可拖动的组合。

但是,根据我在文档中看到的内容,这样的事情应该有效:

 $(function() { $("#lineup li").disableSelection().addClass('ui-state-default').eq(0).addClass('ui-state-disabled');//alternatively, write classes as HTML attributes $("#lineup").sortable({ items: "li:not(.ui-state-disabled)" //should disable draggable and sortable }); });