JQuery可排序ConnectWith不起作用

问题描述 投票:9回答:4

我有两个可排序的列表。我想连接此列表,这样我就可以将项目从一个列表双向移动到另一个列表。我使用sortable connectWith,但是仍然无法将列表项从一个列表移动到另一个列表。

此外,我还可以将项目从一个地方移到另一个地方,但要放在同一列表中。

这里是代码:

<div class="category-container" data-id="1"> 
    <div class="category-header" data-id="1"> 
    </div>
    <ul class="list-items ui-sortable">
        <li class="item" data-id="3">
        <li class="item" data-id="43">
        <li class="item" data-id="28">
        <li class="item" data-id="24">
        <li class="item" data-id="21">
        <li class="item new" data-id="0">
    </ul>
</div>
<div class="category-container" data-id="2">
    <div class="category-header" data-id="2"> 
    </div>
    <ul class="list-items ui-sortable">
        <li class="item" data-id="17">
        <li class="item" data-id="8">
        <li class="item" data-id="9">
        <li class="item new" data-id="0">
    </ul>
</div>

和JQuery:

 $(".list-items").sortable({
            connectWith: '.list-items',
            items: "li:not(.item.new)",
            placeholder: 'place-holder',
            scroll: false,
            tolerance: "pointer"
}).disableSelection();

我无法找出问题所在。

有人可以帮我吗?

谢谢

jquery jquery-ui jquery-ui-sortable
4个回答
15
投票

我知道了。

问题是列表float属性。可排序的connectWith不适用于css float。

Sortable connectWith Bug


4
投票

我只想分享一些我刚刚意识到的东西,也许可以帮助别人。

将接收元素的元素(div / ul)来自另一个列表/表必须有足够的“空间”以接收(宽度和高度)并显示新元素。

Schema


1
投票

嗯,对我来说,该列表可以正常工作。请检查以下内容:http://jsfiddle.net/GSA2A/2/

此外,您应该编写有效的html,至少关闭标签。大多数浏览器可以根据所使用的文档类型来处理丢失的封闭元素。

您也可以使用:

$('#list1, list2').sortable({.......

对我来说更好,更合乎逻辑的是让id上使用的可排序函数以及结合这些列表的类上的connectWith。


1
投票

我同时将ul分配给一个ID,并且在jQuery文件中我同时获得了ID和使用sortable();应用不同的参数,它为我工作,您可以使用此代码,我正在使用jquery-3.1.1.js,您尝试添加包含:'document'

$('#list, #thi').sortable({
  containment: 'document',
  tolerance: 'pointer',
  cursor: 'pointer',
  revert: true,
  opacity: 0.4,
  connectWith: '#list,#thi',
  update: function() {
    // alert('f');
    content = $(this).text();
    $('#fdk').text(content);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="list">
  <li>School</li>
  <li>Name</li>
  <li>Roll</li>
</ul>
<ul id="thi">
  <li>School</li>
  <li>Name</li>
  <li>Roll</li>
</ul>

<div id="fdk">
</div>
© www.soinside.com 2019 - 2024. All rights reserved.