以下是设置:
<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列的最小高度足够大,以便有一个可放置的区域。我还尝试将一个函数绑定到sortable的“start”属性,这样当拖动某些东西时,它会在目标列中为我拖动的那个放置一个虚拟div。
但似乎没有任何效果。无论我尝试什么,可分类项目只想留在他们的组内。如果有办法让物品在两列之间均匀分布,我会特别喜欢它。例如,如果有办法锁定sortable,那么只能交换项目而不为任何新项目腾出空间。
这样我可以在开始时制作虚拟位置,只允许拖动的项目落在现有项目或新创建的虚拟对象上。
除了完美的情况外,我决定能够在群体之间拖拽:(
答案 0 :(得分:3)
嗯,我想是修修补补。我了解到我的代码按原样运行,但我的JS脚本中出现错误,导致我的列可排序字符串中只包含g2_col1和g2_col2,而不是第一列。去认为它不适用于不在字符串中的列,呵呵?
对于有类似问题的其他人,请记住空列区域必须有高度,否则丢弃将无法连接任何内容。也改为容差:指针有帮助。有关如何在此处附加多个可排序列和行的说明,请参阅文档:....呃...没关系。我找不到向我展示上述语法的文档,其中将多个id作为可排序项连接在一起,但上面是正确的语法。