这个问题已经过去了,但似乎没有人遇到过和我一样的问题。
当我做这样的事情时
$(function(){
$('#unique-ul').sortable({items:'li'});
});
我希望它“正常工作”。总的来说,确实如此。我可以拖动任何< li>从任何列表到任何其他列表,以及该< li>的任何子列表被拖着它。
然而,在拖动时,似乎真的很困惑它应该放在哪里。这是一个使用1.8.0的例子;它显示相同的行为。
我发现的所有其他回复让我相信jQuery UI支持这种行为;例如,这是针对嵌套的draggables注册的针对1.7的错误:http://dev.jqueryui.com/ticket/4333
我找不到其他有这个问题的人所以它暗示我做错了。有线索吗?
答案 0 :(得分:77)
这是因为Sortable并不真正知道你是否高于嵌套的<li>
或包含它的那个。{1}}。一种解决方案是使用这样的结构:
<ul>
<li><div>Item 1</div>
<ul>
<li><div>Subitem 1</div></li>
<li><div>Subitem 2</div></li>
</ul>
</li>
<li><div>Item 2</div></li>
<li><div>Item 3</div></li>
</ul>
并设置选项toleranceElement: '> div'
。我不知道为什么它没有记录,但它在那里,它告诉Sortable在计算交叉点时只考虑<div>
。
如果您感兴趣,我最近developed a plugin使嵌套排序更容易,允许动态创建新的嵌套列表。