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

时间:2012-07-03 21:46:22

标签: jquery ruby-on-rails jquery-ui

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

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}", '#'
我在做错了什么?我没做什么似乎阻止第一项被分类和/或移动

1 个答案:

答案 0 :(得分:3)

嗯,很难说肯定。我以前没有使用可排序/可拖动的组合,而且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
    });
});