2012-07-30 34 views
2

我使用jquery插件nested Sortable重新排序列表。 我想知道如何確定父節點和插入節點的位置。jquery嵌套可排序 - 如何獲取位置和父節點被刪除的位置

我的問題是,serialize函數總是返回樹的狀態,然後再更新它。因此,當我將節點1從位置2移動到位置3並且之後調用序列化時,它總是返回移動節點之前樹的狀態。

這與內建的序列化功能,我發現了一些其他的自定義函數的問題:serialize custom

我打電話是在_mouseStop函數結束的序列化功能。似乎不是這樣做的正確位置......看起來這是內在的,它保存了樹的舊狀態。因此,問題可能是我該如何刷新它。!?

_mouseStop: function(event, noPropagation) { 
    ...... 
    $.ui.sortable.prototype._mouseStop.apply(this, arguments); 
    //custom code added 
    var ret = this.serialize({startDepthCount: 0}); 
    console.log(ret); 

而我從一個綁定到serialize函數的按鈕調用序列化函數時,它工作正常。

HTML結構是類似於tutorial使用的一個:

<ol class="sortable"> 
     <li id="list_1"><div>Item 1</div> 
      <ol> 
       <li id="list_2"><div>Sub Item 1.1</div> 
       <li id="list_3"><div>Sub Item 1.2</div> 
      </ol> 
     <li id="list_4" class="no-nest"><div>Item 2 (no-nesting)</div> 
     <li id="list_5"><div>Item 3</div> 
      <ol> 
       <li id="list_6" class="no-nest"><div>Sub Item 3.1 (no-nesting)</div> 
       <li id="list_7"><div>Sub Item 3.2</div> 
        <ol> 
         <li id="list_8"><div>Sub Item 3.2.1</div> 
        </ol> 
      </ol> 
     <li id="list_9"><div>Item 4</div> 
     <li id="list_10"><div>Item 5</div> 
    </ol> 
+0

HTML結構是怎樣的?我可以幫你從那裏.. – Ohgodwhy 2012-07-30 01:26:52

+0

是的,這可能有助於。我添加了html。 – 2012-07-30 01:33:14

回答

3

jQuery nestedSortable文件說,「所有的jQuery可排序選項,事件和方法都可以。」如果你看看jQuery UI sortable doc事件標籤,你會看到更新,我認爲這對你來說是正確的事件。

+0

謝謝!大!這是缺少的鏈接:) – 2012-07-30 13:27:54

+0

@ThomasKremmel,我想如何檢查項目下降是否有父母,並得到他的父母的名字。我可以使用以下命令獲取項目丟棄的信息:$(ui.item).text()或$(ui.item).attr('id')。 但我也想得到他的父母信息。我怎樣做? – Marcel 2017-05-26 22:15:17