我使用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
答案 0 :(得分:1)
我找到了一些解决方法,如下所示,
交换节点后,将其上一个节点虚拟添加到其子节点
。$( “#浏览器”)树视图({添加:$( “#topnd2”)的insertBefore(前面)的.next()});
如果节点被换低,virtuall会将当前节点添加到其下一个节点。
。$( “#浏览器”)树视图({添加:$( “#topnd2”)insertAfter(下一个)});
目前它工作正常,如果我发现此方法有任何问题,将更新此帖子。如果您知道,也请验证这种方法。
此致 Jatan
答案 1 :(得分:0)
如果您尝试在删除节点后再次刷新树视图,则链接将起作用,但不会起作用[+]或[ - ]图标。在几个浏览器上试过这个..