如何触发JQuery treeview的渲染

时间:2008-11-07 05:45:04

标签: javascript 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();

请让我知道你的想法。

谢谢, Jatan

2 个答案:

答案 0 :(得分:1)

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

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

$( “#浏览器”)树视图({添加:$( “#topnd2”)的insertBefore(前面)的.next()});

如果节点被换低,virtuall会将当前节点添加到其下一个节点。

$( “#浏览器”)树视图({添加:$( “#topnd2”)insertAfter(下一个)});

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

此致 Jatan

答案 1 :(得分:0)

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