2012-12-14 48 views
0

我使用這個插件根項目: http://mjsarfatti.com/sandbox/nestedSortable/JQuery用戶界面嵌套sortables:所有嵌套的列表/項目算作一項關

這似乎是偉大的,只是增加了一些額外的選項爲默認jQueryUI的排序(https://github.com/mjsarfatti/nestedSortable - 雖然不支持1.9+)。

然而,我似乎有一個問題,你可以從這個小提琴看到:http://jsfiddle.net/kzswp/6/似乎是導致所有的嵌套列表項目作爲根項目下的一個大項目。

此外,如果你拖動根項目之一是其他根項目的孩子,訂貨性格是不相符的。即使我試圖將項目設置爲已存在的嵌套列表中的子項目,它似乎會創建一個新列表來放置該項目。

這裏是我的標記:

<ol type="I" id="top-level-list"> 
     <li> 
      <h3>Category #1</h3> 
      <div class="child-items"> 
        <ol type="A"> 
         <li> 
          <div class="form-row" > 
           <div class="form-item">Question #1</div> 
          </div> 
        <div class="child-items"> 
         <ol type="1"> 
          <li> 
           <div class="required-parent-response c7ad1cdb-e727-4fb7-b0eb-0f04382dcd86"> 
            <div class="form-row" > 
             <div class="form-item">Some other question</div> 
            </div> 
           </div> 
          </li> 
          <li> 
           <div class="required-parent-response c7ad1cdb-e727-4fb7-b0eb-0f04382dcd86"> 
            <div class="form-row" > 
             <div class="form-item">Branch Question - under Question #1</div> 
            </div> 
           </div> 
          </li> 
         </ol> 
        </div> 
      </li> 
        </ol> 

        </div> 
     </li> 
     <li> 
      <h3>Category #2</h3> 
      <div class="child-items"> 
       <ol type="A"> 
        <li> 
         <div class="form-row" > 
          <div class="form-item">Category #2 - question 1</div> 
         </div> 

        </li> 
       </ol> 
      </div> 
     </li> 

我認爲這個問題是周圍的嵌套列表(我需要這對於其他JS在頁面上)的<div class="child-items">,但即使取出後: http://jsfiddle.net/xJzZU/1/

這僅僅修復了排序字符,但所有的子列表和它們的項目仍然算作一個大的項目。

任何人都知道我怎麼能解決這個問題,同時保持child-items格周圍那些嵌套的元素?

回答

2

首先你要在選項中添加itemstoleranceElement。事情是這樣的:

  $("#top-level-list").nestedSortable({ 
       //handle: ".ui-icon", 
       maxLevels: 3, 
       placeholder: "placeholder", 
       help: "clone", 
       revert: 300, 
       opacity: .6, 
       forcePlaceholderSize: true, 
       tabSize: 40, 
       items: 'li', 
       toleranceElement: '> *' 
      }); 

其次,額外<div class="child-items">不會真正與nestedSortable不幸的工作:/
這是因爲插件預計ol的和li的是在直接父子關係......正如docs規定每個項目必須有一個2個孩子,其中一個是在toleranceElement,另一種是嵌套列表。