我尝试制作可排序的嵌套容器,但我遇到了jQuery UI Sortable插件的问题,我找不到合适的解决方案。
我简化了我的问题,这是代码:
<div id="composition">
<div class="aContainer">
<div class="aContainer"></div>
</div>
<div class="aContainer"></div>
</div>
<script>
$("#composition").sortable({
connectWith: ".aContainer"
});
$(".aContainer").sortable({
connectWith: "#composition, .aContainer"
});
</script>
<style>
#composition
{
padding: 15px;
border: dotted 1px red;
}
.aContainer
{
padding: 15px;
border: solid 1px green;
}
</style>
您可以在此处尝试:http://jsfiddle.net/ekSxg/
将绿色容器拖出红色容器。你应该有以下javascript错误:Uncaught HierarchyRequestError:无法执行&#39; insertBefore&#39; on&#39; Node&#39;:新的子元素包含父元素。
你知道这个问题吗?你有解决方案吗?这是一个错误吗?
谢谢!
答案 0 :(得分:1)
要创建嵌套可排序元素作为可排序容器和可排序元素,需要有一个帮助程序:clone和placeholder。排序时,检查位置占位符是否为0然后重新附加占位符以帮助拖动容器知道插回的位置并避免错误
Uncaught HierarchyRequestError: Failed to execute 'insertBefore' on 'Node': The new child element contains the parent.
这是关于小提琴的测试: http://jsfiddle.net/0umjf5tc/1/