jQuery可排序的可拖动或可拖放的多个列表到一个列表并还原

用户970008

我正在制作可排序的杂货清单,但我无法找出从排序清单中删除某项并将其返回原始类别的最佳方法。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>jQuery UI Draggable + Sortable</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
  <link rel="stylesheet" href="/resources/demos/style.css">
  <style>
  ul { list-style-type: none; margin: 0; padding: 0; margin-bottom: 10px; }
  li { margin: 5px; padding: 5px; width: 150px; }
  #sortable {border: 1px solid #000; min-height:100px;}
  </style>
  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
  <script>
  $( function() {
    $( "#sortable" ).sortable({
      connectWith: '.connectedList'
    });
    $( ".draggable" ).draggable({
      connectToSortable: "#sortable",
      revert: "invalid"
    });
    $( "ul, li" ).disableSelection();
  } );
  </script>
</head>
<body>
<h3>Fruit</h3> 
<ul id="FruitCollection" class="fruits connectedList">
  <li class="draggable">Apples</li>
  <li class="draggable">Oranges</li>
</ul>
<h3>Meat</h3> 
<ul id="MeatCollection" class="meats connectedList">
  <li class="draggable">Beef</li>
  <li class="draggable">Chicken</li>
  <li class="draggable">Pork</li>
</ul>
<h3>Dairy</h3> 
<ul id="DairyCollection" class="dairy connectedList">
  <li class="draggable">Cheese</li>
  <li class="draggable">Milk</li>
  <li class="draggable">Sour Cream</li>
  <li class="draggable">Yogurt</li>
</ul>
 
 <h2>Grocery List</h2>
<ul id="sortable">
 
</ul>
 
 
</body>
</html>

我不确定connectWith到底如何工作。使用可拖动,可放置或可排序的组合,这似乎已经解决了问题。如果将每个类别的项目从可排序项中删除,则应仅返回该项目。

例如,将奶酪拖到杂货店列表中,然后将其拖出有边框的可排序的列表,然后将其删除。奶酪应该回到乳制品清单。

曲折的

添加用户可以单击删除类型的图标可能会更容易例:

$(function() {
  function returnToList(item) {
    var t = $("." + $(item).data("list"));
    $(item)
      .detach()
      .appendTo(t);
    $(".ui-icon", item).remove();
  }

  function addDel(item) {
    $("<span>", {
      class: "ui-icon ui-icon-close"
    }).appendTo(item);
  }

  $("#sortable").sortable({
    stop: function(e, ui) {
      if ($(".ui-icon", ui.item).length < 1) {
        addDel(ui.item);
      }
    }
  });
  $(".items li").draggable({
    connectToSortable: "#sortable",
    revert: "invalid"
  });
  $("ul, li").disableSelection();

  $(".list").on("click", "li .ui-icon-close", function() {
    returnToList($(this).parent());
  });
});
ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  margin-bottom: 10px;
}

li {
  margin: 5px;
  padding: 5px;
  width: 150px;
  position: relative;
}

.items {
  width: 175px;
  display: inline-block;
  float: left;
}

.grocery {
  width: 200px;
  display: inline-block;
  margin-left: 20px;
}

#sortable {
  border: 1px solid #000;
  min-height: 100px;
}

.list li span {
  position: absolute;
  right: 4px;
  padding: 2px;
}
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<div class="ui-widget">
  <div class="items list">
    <div class="ui-widget-header">Fruit</div>
    <ul id="FruitCollection" class="fruits">
      <li class="ui-widget-content" data-list="fruits">Apples</li>
      <li class="ui-widget-content" data-list="fruits">Oranges</li>
    </ul>
    <div class="ui-widget-header">Meat</div>
    <ul id="MeatCollection" class="meats">
      <li class="ui-widget-content" data-list="meats">Beef</li>
      <li class="ui-widget-content" data-list="meats">Chicken</li>
      <li class="ui-widget-content" data-list="meats">Pork</li>
    </ul>
    <div class="ui-widget-header">Dairy</div>
    <ul id="DairyCollection" class="dairy">
      <li class="ui-widget-content" data-list="dairy">Cheese</li>
      <li class="ui-widget-content" data-list="dairy">Milk</li>
      <li class="ui-widget-content" data-list="dairy">Sour Cream</li>
      <li class="ui-widget-content" data-list="dairy">Yogurt</li>
    </ul>
  </div>

  <div class="grocery list">
    <div class="ui-widget-header">Grocery List</div>
    <ul id="sortable"></ul>
  </div>

  <div class="ui-helper-clearfix"></div>
</div>

您可以使用Drag事件,但是需要一个目标。然后,事件回调将执行与Click相同的操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jQuery拖放-一个具有可排序列表,另一个具有可拖动和可拖放列表,但没有排序

来自分类Dev

jQuery的UI可拖动的可排序元素到一个iframe

来自分类Dev

jQuery的UI可拖动的可排序元素到一个iframe

来自分类Dev

jQuery拖放可排序连接列表

来自分类Dev

使用Jquery UI拖放多个选定的可拖动对象并还原无效的可拖动对象

来自分类Dev

jQuery可嵌套无法拖动到一个空列表

来自分类Dev

结合jQuery可拖动,可拖放和可排序

来自分类Dev

多个可拖放和可排序的jQuery

来自分类Dev

在同一列表中拖动以及从一个列表移至已连接列表时,如何区分可排序的更新事件

来自分类Dev

如何根据另一个活动的可排序列表对列表进行重新排序?

来自分类Dev

如何根据另一个活动的可排序列表对列表进行重新排序?

来自分类Dev

jQuery可排序列表,但不允许将元素拖到另一个列表中

来自分类Dev

Jquery UI 可拖动列表项到框中

来自分类Dev

jQuery的可排序的UI删除项目,当拖动到一个特定的div

来自分类Dev

jQuery UI从可排序到自由拖动

来自分类Dev

jQuery可拖动并延迟还原

来自分类Dev

我需要可拖动到json的保存列表并使用jquery还原吗?

来自分类Dev

在拖动一个jqueryUI可拖动元素时,触发对其他多个元素的拖动

来自分类Dev

jQuery拼图,具有可排序,可拖动和可拖放的功能

来自分类Dev

jQuery可拖动到空列表

来自分类Dev

jQuery可拖动列表项被隐藏

来自分类Dev

将div从一个列表移动(拖动)到多个可能的目标以及目标之间

来自分类Dev

使用Jquery UI可排序一次对2个列表进行排序

来自分类Dev

jQuery UI可排序还原:还原到左上方

来自分类Dev

jQuery可排序连接两个列表,其中只有1个应该可排序

来自分类Dev

jQuery可排序连接两个列表,其中只有1个应该可排序

来自分类Dev

如何使可动态添加的列表元素在jquery中可拖动?

来自分类Dev

可排序的列表-与正确的顺序进行比较,并添加一个类以使其位置正确

来自分类Dev

将列表排序到另一个列表

Related 相关文章

  1. 1

    jQuery拖放-一个具有可排序列表,另一个具有可拖动和可拖放列表,但没有排序

  2. 2

    jQuery的UI可拖动的可排序元素到一个iframe

  3. 3

    jQuery的UI可拖动的可排序元素到一个iframe

  4. 4

    jQuery拖放可排序连接列表

  5. 5

    使用Jquery UI拖放多个选定的可拖动对象并还原无效的可拖动对象

  6. 6

    jQuery可嵌套无法拖动到一个空列表

  7. 7

    结合jQuery可拖动,可拖放和可排序

  8. 8

    多个可拖放和可排序的jQuery

  9. 9

    在同一列表中拖动以及从一个列表移至已连接列表时,如何区分可排序的更新事件

  10. 10

    如何根据另一个活动的可排序列表对列表进行重新排序?

  11. 11

    如何根据另一个活动的可排序列表对列表进行重新排序?

  12. 12

    jQuery可排序列表,但不允许将元素拖到另一个列表中

  13. 13

    Jquery UI 可拖动列表项到框中

  14. 14

    jQuery的可排序的UI删除项目,当拖动到一个特定的div

  15. 15

    jQuery UI从可排序到自由拖动

  16. 16

    jQuery可拖动并延迟还原

  17. 17

    我需要可拖动到json的保存列表并使用jquery还原吗?

  18. 18

    在拖动一个jqueryUI可拖动元素时,触发对其他多个元素的拖动

  19. 19

    jQuery拼图,具有可排序,可拖动和可拖放的功能

  20. 20

    jQuery可拖动到空列表

  21. 21

    jQuery可拖动列表项被隐藏

  22. 22

    将div从一个列表移动(拖动)到多个可能的目标以及目标之间

  23. 23

    使用Jquery UI可排序一次对2个列表进行排序

  24. 24

    jQuery UI可排序还原:还原到左上方

  25. 25

    jQuery可排序连接两个列表,其中只有1个应该可排序

  26. 26

    jQuery可排序连接两个列表,其中只有1个应该可排序

  27. 27

    如何使可动态添加的列表元素在jquery中可拖动?

  28. 28

    可排序的列表-与正确的顺序进行比较,并添加一个类以使其位置正确

  29. 29

    将列表排序到另一个列表

热门标签

归档