【问题标题】:jQuery UI Sortable - connectWith difficulties when connected item is emptyjQuery UI Sortable - 连接项目为空时连接困难
【发布时间】:2011-07-29 15:30:28
【问题描述】:

我在一个页面上有几个可排序的表。他们中的大多数是连接的,但一个只能被拖出,而不能被拖出。我似乎无法将项目拖到这些空表之一中。

这是一个 jsFiddle:http://jsfiddle.net/jasonbutz/ZLzU3/2/

编辑:

另外,隐藏<tr> 似乎没有任何帮助。

【问题讨论】:

    标签: jquery-ui jquery-ui-sortable


    【解决方案1】:

    将可排序表的主体与连接列表/表一起使用时,Jquery UI 可排序似乎有问题。实现这一点的另一种方法是将表本身设置为可排序的容器并设置items 是可排序的,在这种情况下,我们只希望tbody 中的tr 而不是thead。这是工作示例:http://jsfiddle.net/ZLzU3/62/

    【讨论】:

    • receive: function(e, ui){ if($('tbody tr',this).length == 0){ ` $(this).find("tbody").append(ui.item); ` } `} 这使得函数更准确。
    【解决方案2】:

    Xnake 的回答解决了一个问题(非常感谢他),但也创建了一个问题:如果您在两个都有内容的表之间移动项目,则您移动的项目将始终出现在底部您将其添加到的表。如果这是您正在寻找的行为,那很好,但如果不是,您需要替换他的接收处理程序:

    function(e, ui) 
    {
      $(this).find("tbody").append(ui.item);
    }
    

    与:

    function(e, ui) 
    {
      var collection = $(this).find("tbody tr");
      if(collection.length < 1)
      {
        $(this).find("tbody").append(inserted);
      }
      else
      {
        $(ui.placeholder).replaceWith(inserted);
      }
    }
    

    它保留了他对空表的 bug-killing 行为,但在表有项目时保留了小部件的默认行为。

    可能有更好的方法来做到这一点;我一直找不到任何令人满意的方法来调用覆盖中的默认功能,这将是理想的。

    【讨论】:

      【解决方案3】:

      我参加聚会有点晚了,但就我而言,我没有表格标题,这对我来说是个问题。另外,我以两种方式实现了这一点。以下是我的做法和为我工作的方式:

      https://devstuffs.wordpress.com/2015/07/31/jquery-ui-sortable-with-connected-tables-and-empty-rows/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-11
        • 1970-01-01
        相关资源
        最近更新 更多