如何触发JQuery treeview的渲染

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何触发JQuery treeview的渲染相关的知识,希望对你有一定的参考价值。

我使用jquery tree plugin来呈现分层数据。

我编写了额外的功能,允许用户与这些数据交互(如添加/删除节点,交换节点等...)

目前这个插件支持无论何时想要添加任何节点,都可以调用以下方法,

$("#browser").treeview({
     add: branches
});

这里branches是用html块创建的jQuery object,它代表一个特定的节点。

但是,对于删除和交换节点,我使用常见的JQuery函数,

删除,

$("#topnd2").remove();

换换,

var next = $("#topnd2").next();
$("#topnd2").insertAfter(next);

topnd2是任何特定树节点的id

节点被正确删除/交换,但问题是树没有被渲染,因此树图像(主要是表示分支的垂直线)没有正确设置。

例如,如果我删除最后一个节点,那么该节点将从渲染的树视图中删除,但剩余的兄弟节点应该得到L作为分支线图像但不是。

我试着打电话

$("#browser").treeview();

请让我知道你的想法。

谢谢,去吧

答案

我找到了一些解决方法,如下所示,

交换节点后,将其上一个节点虚拟添加到其子节点,

$( “#浏览器”),树状({添加:$( “#topnd2”)的insertBefore(以前)的.next()});

如果交换节点,则虚拟将当前节点添加到其下一个节点。

$( “#浏览器”),树状({添加:$( “#topnd2”)insertAfter(下一步)。});

目前它工作正常,如果我发现这种方法有任何问题,将更新这篇文章。如果您知道,也请验证此方法。

问候,去吧

另一答案

如果您尝试在删除节点后再次刷新树视图,则链接将起作用,但不会起作用[+]或[ - ]图标。在几个浏览器上试过这个..

以上是关于如何触发JQuery treeview的渲染的主要内容,如果未能解决你的问题,请参考以下文章

无法为填充的 TreeView 节点触发 SelectedNodeChanged 事件

如何访问服务器上的 Jquery TreeView?

wpf treeview中动态创建的treeViewItem如何用右键触发菜单?

GTK3 在 TreeView 中为 RTL 语言(如希伯来语)渲染文本

jQuery Mobile:渲染新元素但不触发动作

VueJS:在 v-for 之后触发 jQuery?