【问题标题】:jquery sortable: How to sync 2 sortable lists?jquery sortable:如何同步 2 个可排序列表?
【发布时间】:2013-08-03 09:50:55
【问题描述】:

我有 2 个单独工作的可排序列表。我想同步 2 个列表——当一个列表项移动时,另一个列表中相关项的位置也会移动。 你能推荐一个函数或方法让我学习吗?

【问题讨论】:

    标签: jquery-ui jquery-ui-sortable


    【解决方案1】:

    这是一个非常糟糕的 hack,但它可能会给你一些开始的想法:

    Working Example

     $(function () {
         $('#sortable').sortable({
             update: function (event, ui) {
                 var x1 = $('#X1').position().top +140,
                     x2 = $('#X2').position().top +140,
                     x3 = $('#X3').position().top +140;
                 $('#sortable2 li').css({
                     position:'absolute',
                     width:  $('#sortable li').width()
                 });
                 $('#Y1').animate({
                     'top': x1
                 });
                 $('#Y2').animate({
                     'top': x2
                 });
                 $('#Y3').animate({
                     'top': x3
                 });
             }
         });
    
         $("#sortable").disableSelection();
     });
    

    我说这是一个非常糟糕的 hack,因为它显然不能很好地扩展......

    您可能需要使用update function 和某种animation

    另一种选择是只复制 html:

    Working Example 2

     $(function () {
         $("#sortable").sortable({
             update: function (event, ui) {
                 $('#sortable2').html($('#sortable').html());
             }
         });
         $("#sortable").disableSelection();
     });
    

    这会更好地扩展,但不是那么漂亮。

    【讨论】:

    • 谢谢!我更喜欢不那么 hackish :-) 我想我会处理选项二。问题是我的 2 个 sortables 的内容略有不同,所以,我将使用其他东西而不是 html()。
    • 我知道这已经很老了,我只是想知道你是如何在不使用 html() 的情况下让它工作的,因为我也需要这样做。我的两个列表的 html 完全不同,我需要通过使用相似的 ID 将它们连接起来,即 list1_0 和 list2_0 将被连接。
    • @Doug 随时提出新问题并将链接发送给我。我得看看你目前拥有的东西和你的使用背景。
    猜你喜欢
    • 2013-05-20
    • 1970-01-01
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多