【问题标题】:Jquery ui sortable: drag list items between two columns of a group and between different groupsjquery ui sortable:在一个组的两列之间和不同组之间拖动列表项
【发布时间】: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


    【解决方案1】:

    嗯,我猜修补会变魔术。我了解到我的代码按原样工作,但是我的 JS 脚本中有一个错误,导致我的列可排序字符串中只有 g2_col1 和 g2_col2 而不是第一列。想想它对不在字符串中的列不起作用,是吧?

    对于遇到类似问题的任何其他人,请记住,您的空列区域必须有高度,否则水滴将无法连接任何东西。也更改为公差:指针有帮助。有关如何在此处将多个可排序的列和行相互附加的说明,请参阅文档:....呃...没关系。我找不到向我展示上述语法的文档,其中您将多个 id 作为可排序的对象连接在一起,但以上是正确的语法。

    【讨论】:

      猜你喜欢
      • 2011-05-05
      • 2021-02-03
      • 2020-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-19
      相关资源
      最近更新 更多