【发布时间】:2020-08-18 16:20:54
【问题描述】:
我正在制作一个可排序的购物清单,但我想不出从排序列表中删除一个项目并让它回到原始类别的最佳方法。
<!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 是如何工作的。使用可拖动、可放置或可排序的组合,这似乎是一个已经解决的问题。每个类别的项目只有在从可排序对象中删除时才应返回给它。
例如,将 cheese 拖到购物清单中,然后通过将其拖出带边框的可排序来将其删除。奶酪应该回到乳制品清单。
【问题讨论】:
-
看这个例子来了解你的想法是如何工作的:jqueryui.com/droppable/#photo-manager 其次,Sortable 作为一个 Combo 工作。列表中的元素可以拖放回列表中。因此,新的 Dragged 项目也可以被带入列表中。
标签: jquery-ui jquery-ui-sortable jquery-ui-draggable jquery-ui-droppable