【发布时间】:2014-01-26 00:21:15
【问题描述】:
设置如下:
<div id='sortable_groups'>
<div id='group1'>
<div id='g1_col1' class='sort_column'>
</div>
<div id='g1_col2' class='sort_column'>
</div>
</div>
<div id='group2'>
<div id='g2_col1' class='sort_column'>
</div>
<div id='g2_col2' class='sort_column'>
</div>
</div>
所以我已经让它在组本身可以来回拖动的情况下工作,并且当我的页面开始时我打印到列中的任何项目都可以在同一组的 column1 或 column2 中排序。这是 jquery:
$("#sortable_groups").sortable({
}).disableSelection();
$("#g1_col1,#g1_col2,#g2_col1,#g2_col2").sortable({
connectWith: ".sort_column",
tolerance: "pointer",
update: function (){
},
}).disableSelection();
所以我希望能够将项目从任何列拖到任何其他列。但是,例如,当我从 g2_col1 拖动时,它只会落入 g2_col1 或 g2_col2,而不是 group1 中的任何内容。我已经尝试使 group1 列的最小高度足够大,以便有一个可放置的区域。我还尝试将一个函数绑定到可排序对象的“开始”属性,以便在拖动某些内容时,它会在目标列中为我拖动的对象创建一个虚拟 div。
但似乎没有任何效果。无论我尝试什么,可排序的项目都只想留在他们的组内。如果有办法让项目在两列之间均匀分布,我会特别喜欢它。例如,如果有一种方法可以锁定 sortable,以便项目只能被交换而不能为任何新项目腾出空间。
这样我可以在开始时制作虚拟位置,并且只允许拖动的项目落到现有项目或新创建的虚拟对象上。
抛开如此完美的情况,我会满足于能够在组之间拖动:(
【问题讨论】:
标签: jquery jquery-ui jquery-ui-sortable