2011-02-04 37 views
1

我已经设置了与jQuery UI的嵌套拖放,但是,我想知道如何才能以创建新的子列表的方式拖动项目。例如。如果我将项目1.2.2拖到右侧,它将在项目1.2.1下创建一个新的子级别。jQuery UI嵌套列表创建新的子列表

这是我的代码:

<div id="mylist"> 
    <ul> 
     <li>Item #1</li> 
     <li>Item #2</li> 
     <ul> 
      <li>Item #1.1</li> 
      <li>Item #1.2</li> 
      <ul> 
       <li>Item #1.2.1</li> 
       <li>Item #1.2.2</li> 
       <li>Item #1.2.3</li> 
       <li>Item #1.2.4</li> 
      </ul> 
      <li>Item #1.3</li> 
      <li>Item #1.4</li> 
     </ul> 
     <li>Item #3</li> 
     <li>Item #4</li> 
    </ul> 
</div> 

$(document).ready(function() {  
    $("#mylist ul").sortable({ 
     items: "li", 
     connectWith: 'ul', 
    }); 
}); 

UPDATE:

其实。我的示例代码无法正常工作。我只注意到,当我拖动一个父母时,应该拖动它的所有孩子以及它目前没有的孩子。我喜欢它也能做到这一点。

回答

1

您需要嵌套的上行线路为LIS,像这样:

<div id="mylist"> 
<ul> 
    <li>Item #1</li> 
    <li>Item #2 
     <ul> 
      <li>Item #1.1</li> 
      <li>Item #1.2 
       <ul> 
        <li>Item #1.2.1</li> 
        <li>Item #1.2.2</li> 
        <li>Item #1.2.3</li> 
        <li>Item #1.2.4</li> 
       </ul> 
      </li> 
      <li>Item #1.3</li> 
      <li>Item #1.4</li> 
     </ul> 
    </li> 
    <li>Item #3</li> 
    <li>Item #4</li> 
</ul> 

尝试活生生的例子:http://jsfiddle.net/pyEa4/ - 它的小马车,但孩子的与父母拖累。

+0

它似乎是完成这个最简单的方法。但是,目前我不确定嵌套UL是否是有效的XHTML。我会将您的答案标记为正确的,因为在问题的背景下它确实提供了正确的答案。 – Luke 2011-02-05 06:50:16