1
我希望能够通过拖拽或通过命令列表中的删除按钮将项目放回原始位置列表。到目前为止,我已经能够拖动到最终列表并将它从最终列表中删除,但是我找不到将其恢复到原始列表的方式。Jquery拖放 - 无法拖拽
这里是我现在的代码(可测试版本在这里:http://jsfiddle.net/PmVhd/):
<style>
h1 { padding: .2em; margin: 0; }
#products { float:left; width: 500px; margin-right: 2em; cursor: move }
#cart { width: 300px; float: left; margin-top: 1em; cursor: move }
#cart ol { margin: 0; padding: 1em 0 1em 3em; }
</style>
<script>
$(function() {
$("#catalog").accordion();
$("#catalog li").draggable({
helper: "clone"
});
$("#catalog ul").droppable({
drop: function (event, ui) {
$(ui.draggable).remove();
$("<li></li>").text(ui.draggable.text()).appendTo(this);
}
});
$("#cart ol").draggable({
appendTo: "body",
helper: "clone"
});
$("#cart ol").droppable({
drop: function (event, ui) {
$(ui.draggable).remove();
$(this).find(".placeholder").remove();
var el = $("<li>" + ui.draggable.text() + "</li> <a href='#'>[x]</a>").filter('a')
.click(function() {
el.remove();
}).end().appendTo(this);
}
});
});
<div id="products">
<h1 class="ui-widget-header">Car Extras</h1>
<div id="catalog">
<h2><a href="#">Security</a></h2>
<div>
<ul>
<li id="1">ABS</li>
<li id="2">ESP</li>
<li id="3">Airbag</li>
</ul>
</div>
<h2><a href="#">Confort</a></h2>
<div>
<ul>
<li>Air Conditioning</li>
<li>Hands-free Phone</li>
<li>Alligator Leather</li>
</ul>
</div>
<div id="cart">
<h1 class="ui-widget-header">My Car Extras</h1>
<div class="ui-widget-content">
<ol>
<li class="placeholder">Add your items here</li>
</ol>
</div>
感谢您的帮助。
那么,我检查了你的代码,你应该首先重写你的javascript。目前您销毁列表条目并重新创建它们。这不是你应该这样做的方式。查看'sortable()'jquery UI函数并使用'connectWith'连接列表。你可以在'receive'部分添加[x]。之后,您可以在列表ID上应用sort()算法以保持订单。检查此链接的排序功能:http://stackoverflow.com/questions/6303528/jquery-sortable-auto-sort – gulty 2013-02-15 12:29:47