0

我使用jquery 树插件来呈现分层数据。

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

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

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

这里branchesjQuery object用 HTML 块创建的,它代表一个特定的节点。

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

对于删除,

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

用于交换,

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

topnd2id任何特定树节点的一个。

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

例如,如果我删除最后一个节点,则该节点将从渲染的树视图中删除,但剩余的兄弟节点应该将 L 作为支线图像而不是 | .

我试着打电话

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

请让我知道你的想法。

谢谢, 贾坦

4

2 回答 2

1

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

一旦节点被交换,虚拟地将它的前一个节点添加到它的子节点,

$("#browser").treeview({add:$("#topnd2").insertBefore(previous).next()});

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

$("#browser").treeview({add:$("#topnd2").insertAfter(next)});

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

问候, 贾坦

于 2008-11-07T06:31:17.077 回答
0

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

于 2010-02-11T01:43:38.503 回答