jstree的问题可以扩展没有子节点的节点

时间:2011-09-21 12:33:22

标签: jquery jstree children nodes expand

我正在使用带有ajax的jstree,我看到我的所有节点都有箭头来扩展它,甚至那些没有子节点的节点。在jstree http://www.jstree.com/demo的演示页面上,情况并非如此。我没有在演示代码上看到与我不同的东西,它是否来自服务器?我有一个参数来响应“getChildren”方法在jstree上说“这个,没有孩子,不能启用它”吗?

任何人都知道它来自哪里?我该怎么做才能解决这个问题?

因为当我使用contextmenu插件的复制/粘贴功能时似乎是个问题。当我粘贴一个没有子节点但尚未打开的节点(新父节点)时(因此没有加载子节点),除了获取子节点的请求(如果我点击打开节点)没有任何明显的返回。并且它不执行move_node函数。

编辑:我对contextmenu中的“添加”存在同样的问题

有人可以帮帮我吗?

由于

4 个答案:

答案 0 :(得分:9)

来自jsTree文档:

http://www.jstree.com/documentation/html_data

将根据节点结构应用三个类中的一个:

<li class="[ jstree-open | jstree-closed | jstree-leaf ]"> 

Jonathan Stowell是对的,但是将attr.class设置为&#34; jstree-leaf&#34;不会工作(至少不是最新版本)。

但是&#34;打开&#34;并且&#34;关闭&#34;让我想起了node.state,所以我试过了,结果发现当你设置node。 state to&#34; leaf&#34;在您的JSON序列化类中,它将是不可扩展的。

答案 1 :(得分:4)

我将jstree-leaf类添加到attr属性中,用于没有子节点的节点。

attr: { "class" : "jstree-leaf" }

然后设置您不需要扩展功能的CSS类。

答案 2 :(得分:2)

我遇到了与“创建”方法和没有子节点的节点相同的问题。解决了它将这些节点的状态指定为“打开”而不是默认的“关闭”。

希望这会有所帮助。

答案 3 :(得分:1)

如果发送json数据,请将“jstree-leaf”作为li_attr的类

 li_attr: {class = "jstree-leaf" }