Jquery nestedSortable在呈现html后不检测元素

Jquery nestedSortable在呈现html后不检测元素,jquery,jquery-ui-sortable,nested-sortable,Jquery,Jquery Ui Sortable,Nested Sortable,如果我将一组元素添加到嵌套的可排序列表中,默认情况下,它们将转到根目录,我可以像平常一样拖动它们。当我拖动一个父元素时,子元素会随之出现,如下图所示。 如果我使用.nestedSortable('toArray')保存列表。层次结构看起来很完美。我将其保存为json字符串,并将其作为表单的一部分提交。当我重新加载要编辑的页面时。代码以完全相同的方式重建层次结构,除非它们不再连接。如果我调用.nestedSortable('toArray')立即,只拾取根元素的直接子元素,并且缺少所有子元素 如

如果我将一组元素添加到嵌套的可排序列表中,默认情况下,它们将转到根目录,我可以像平常一样拖动它们。当我拖动一个父元素时,子元素会随之出现,如下图所示。

如果我使用
.nestedSortable('toArray')保存列表。层次结构看起来很完美。我将其保存为json字符串,并将其作为表单的一部分提交。当我重新加载要编辑的页面时。代码以完全相同的方式重建层次结构,除非它们不再连接。如果我调用
.nestedSortable('toArray')立即,只拾取根元素的直接子元素,并且缺少所有子元素

如果我尝试拖动父对象,它将与子对象分离。如果我将该子对象拖回根对象,然后使其再次成为子对象,则功能将恢复正常。似乎插件没有读取孩子们。但是HTML是完全相同的。我在页面加载后生成的服务器端和之前生成的服务器端完全没有区别

这是我正在使用的代码

    var ns = jQuery('#wikiheirarchy').nestedSortable({
        forcePlaceholderSize: true,
        items: 'li',
        handle: 'div.inner',
        tolerance: 'pointer',
        toleranceElement: '> div',
        listType: 'ul',
        maxLevels: 6,
        opacity: .6,
        tabSize : 20,
        update: function () {
            //DO STUFF                  
        }
    }); 
这是服务器端代码为插件生成的代码

<ul id="wikiheirarchy" class="sortable ui-sortable mjs-nestedSortable-branch mjs-nestedSortable-expanded">
    <li id="wikirecord_2">
        <div class="inner">
            <strong>Title: </strong>Sample Page<br>
                <strong>Url: </strong>http://localhost:8080/wordpress/sample-page/<div>
                    <a href="javascript:removeWikiPost(2)">Delete</a>
                </div>
        </div>
    </li>
    <ul>
        <li id="wikirecord_1">
            <div class="inner">
                <strong>Title: </strong>Hello world!<br>
                    <strong>Url: </strong>http://localhost:8080/wordpress/2019/04/08/hello-world/<div>
                        <a href="javascript:removeWikiPost(1)">Delete</a>
                    </div>
            </div>
        </li>
    </ul>
    <li id="wikirecord_8">
        <div class="inner">
            <strong>Title: </strong>test ahvsdas sasfdsdcfghf<br>
                <strong>Url: </strong>http://localhost:8080/wordpress/2019/06/11/test-ahvsdas-sasfdsdcfghf/<div>
                    <a href="javascript:removeWikiPost(8)">Delete</a>
                </div>
        </div>
    </li>
    <li id="wikirecord_78">
        <div class="inner">
            <strong>Title: </strong>Test<br>
                <strong>Url: </strong>http://localhost:8080/wordpress/2019/06/27/test/<div>
                    <a href="javascript:removeWikiPost(78)">Delete</a>
                </div>
        </div>
    </li>
</ul>
  • 标题:示例页
    网址:http://localhost:8080/wordpress/sample-页面/
    • 标题:你好,世界
      网址:http://localhost:8080/wordpress/2019/04/08/hello-世界/
  • 标题:测试ahvsdas sasfdsdcfghf
    网址:http://localhost:8080/wordpress/2019/06/11/test-ahvsdas sasfdsdcfghf/
  • 标题:测试
    网址:http://localhost:8080/wordpress/2019/06/27/test/

找到了问题。关闭
在孩子
之前。上下拖动修复了这个问题。我不知道为什么,但firefox删除了双重关闭li。我在孩子ul之后有一个结束语li,但在孩子列表之前也有一个结束语li,这就是让事情变得疯狂的原因