nestedSortable ui.item 中动态添加的属性不显示

Dynamically added attr in ui.item of nestedSortable do not show

我有这样的代码:

<ol class="champs_form ui-sortable">
    <li class="groupe ui-sortable-handle" g_id="88"><ol></ol></li>
</ol>

我试过了:

$("ol.champs_form, .champs_form ol").nestedSortable({
    revert: true,
    placeholder: 'placeholder',
    update: function(event, ui) {
        alert(ui.item.closest("li.groupe").attr("g_id") + " -- "+  $(this).closest("li").attr("g_id"));
        theID = 3;
        ui.item.attr("g_id",theID);    
     }
})

当我拖动一个新项目时

<li class="groupe"><ol></ol><li>

进入我的

ol.champs_form

结果如下FireBug:

<ol class="champs_form ui-sortable">
    <li class="groupe ui-sortable-handle" g_id="88">
        <ol>
            <li class="groupe" g_id="3"><ol></ol></li>
        </ol>
    <li>
</ol>

那我再拖一个

<li class="groupe"><ol></ol><li>

我的alert总是return Undefined -- 88,当我从li的第二层插入的时候假设 return 3!

ui.item.closest("li.groupe").parent().html()

与 Firebug 相比,总是显示没有 g_id="3" 的初始 li ]

谢谢, 文森特

我想我找到了解决方案,虽然不优雅,但很有效。

lastIndex = $('ol.champs_form li').index(ui.item);
closestParent = $("ol.champs_form li:eq("+lastIndex+")").closest("ol").closest("li").attr("g_id");