Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jstree动态菜单中如何创建切换链接_Javascript_Jstree - Fatal编程技术网

Javascript 在jstree动态菜单中如何创建切换链接

Javascript 在jstree动态菜单中如何创建切换链接,javascript,jstree,Javascript,Jstree,我使用jstree插件创建了一个动态菜单,这里我的问题是当我们单击parent1时切换菜单,然后子项将被打开,当我单击parent2 ie节点2时,我想关闭parent1。 如何实现这一点 node1 sub1 sub2parent sub1 sub2 sub3 sub3 node2 sub1 sub2 sub3 在这里,当我单击节点1时,所有子节点都可见。 当我单击节点2时,节点1子节点和

我使用jstree插件创建了一个动态菜单,这里我的问题是当我们单击parent1时切换菜单,然后子项将被打开,当我单击parent2 ie节点2时,我想关闭parent1。 如何实现这一点

node1
    sub1
    sub2parent
          sub1
          sub2
          sub3
    sub3

node2
   sub1
   sub2
   sub3
在这里,当我单击节点1时,所有子节点都可见。 当我单击节点2时,节点1子节点和note2子节点可见


我需要的是,当我单击节点2时,节点1应该关闭。

您可以在打开事件之前收听
,然后关闭此时展开的所有内容。
检查演示-


这只适用于一个级别,但是如果有多个级别,那么它就不起作用了。当我单击具有更多链接的子父级时,所有的主prent都会关闭。因此,当你打开一个节点时,你想关闭什么?我得到了我使用的要求。on(“before_open.jstree”,function(e,data){var nodesToKeepOpen=[];//获取所有父节点以保持打开$('#'+data.node.id).父节点('.jstree node').each(function(){nodesToKeepOpen.push(this.id);})//添加当前节点以保持打开nodesToKeepOpen.push(data.node.id);//关闭所有其他节点$('.jstree node')。each(function(){if(nodestokeepon.indexOf(this.id)==-1){$(“#tree”).jstree().close_节点(this.id);})
.on("before_open.jstree", function(e, data) {
   $('#tree').jstree().close_all();
});