我正在尝试编写一个 UI 以允许操作分层数据集。
层次结构包含“容器”和“组件”元素。容器可以包含组件和其他容器。
我希望能够:
- 在其父容器中重新排序组件/容器
- 将组件/容器从一个父容器拖到另一个
jQuery 的 Sortable Widget 几乎可以满足我的需求。我能够重新排序容器中的组件并将组件从一个容器拖到另一个容器。
但是,当我尝试删除容器元素时,它消失了。
我浏览了 API 文档,但找不到任何可以帮助我的东西。
是否可以配置 jQuery Sortable 来做我需要的事情?
这是代码,它也在jsfiddle上(尝试拖动粉红色的 div)
<!doctype html>
<html lang="en">
<head>
<title>jQuery UI Sortable - Connect lists</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
<style type="text/css">
.component, .container, .new-component
{
font-family: Sans-Serif;
line-height: 30px;
min-height: 30px;
margin: 10px;
padding: 10px;
border: 1px solid #333;
}
.container
{
background-color: #eee;
}
.container > .container
{
background-color: #fcc;
}
.component
{
background-color: #aaa;
}
.new-component
{
background-color: #ccd;
}
</style>
<script type="text/javascript">
$(function () {
$(".container").sortable({
placeholder: "new-component",
connectWith: ".container"
});
});
</script>
</head>
<body>
<div class="container">
<div class="component">Component 1</div>
<div class="component">Component 2</div>
<div class="component">Component 3</div>
<div class="container">
<div class="component">Component 4</div>
<div class="component">Component 5</div>
<div class="component">Component 6</div>
</div>
</div>
</body>
</html>
[我发现删除 { connectWith: ".container" } 选项允许我重新排序组件/容器兄弟,但我无法在容器之间移动组件。]