jQuery可排序连接两个列表,其中只有1个应该是可排序的

时间:2014-08-12 09:02:44

标签: jquery jquery-ui-sortable

我正在尝试进行设置,您可以从A移动到B和B移动到A,但只能在B中进行排序。

$("#B, #A").sortable({
  connectWith: ".sec-sorter",
  stop: function(event, ui) {
    if (ui.sender == null && ui.item.parent().is($(this))) {
        alert('LALALA');
    }
  },
  receive: function(event, ui) {
    //alert($(ui.item).attr("id") + ' from #' + ui.sender.context.id + ' was dropped     in #' + this.id);
  }
}).disableSelection();

这很好用,除了#A仍然是可排序的。我如何防止A被排序,但仍与B连接?

谢谢

1 个答案:

答案 0 :(得分:2)

您可以使用两个排序:AB。您可以在A中隐藏占位符并取消A内的排序,给人的印象是它不可排序,如下所示:

CSS:

#sortable1 .ui-sortable-placeholder { /*placeholder in A*/
  display:none !important;
}

JS:

$("#sortable1").sortable({
  connectWith: ".connectedSortable ",
  revert: 0,
  stop: function (e, ui) {
    if (ui.item.parent().is(this)) $(this).sortable("cancel");
  }
});

$("#sortable2 ").sortable({ // sortable B
  connectWith: ".connectedSortable "
});

Demo