jquery - 呈现html后nestedSortable未检测到元素
问题描述
如果我将一堆元素添加到嵌套的可排序列表中,默认情况下它们会转到根目录,我可以正常拖动它们。当我拖动父元素时,子元素会随之而来,如下图所示。
如果我使用.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>
解决方案
发现问题。结束</li>
就在孩子面前<ul>
。向上和向后拖动它可以解决此问题。我不知道为什么,但 Firefox 正在删除双重关闭 li。我在孩子 ul 之后有一个结束 li,但在孩子列表之前也有一个结束 li,这就是让它发疯的原因。
推荐阅读
- reactjs - 有没有办法避免在 React 中有两个“根”元素?
- asp.net - 会话状态以秒为单位超时,而不是分钟
- python - 如何将一列拆分为多列?
- javascript - Javascript结合2个地图数组
- python - 这是python中矩阵计算的稳定性问题吗?
- sql - 根据其他列中的条件获取不同的值计数
- javascript - 当超链接行为是由例如 HTML 按钮的“单击”事件处理虚拟创建时,如何防止打开新选项卡或窗口?
- python - 更改安装在 python 虚拟环境中的库的所有权
- capacitor - 在电容器应用程序中打开 Web 应用程序
- c++ - 安装 curlpp 库