js树形菜单问题

JavaScript014

js树形菜单问题,第1张

其实很简单,就是在你

if (document.getElementById('node' + no).style.display == 'none') {

document.getElementById('node' + no).style.display = 'block'}// 如果此层是隐藏的

这段里面在加一句所有子层隐藏就可以了

if (document.getElementById('node' + no).style.display == 'none') {

(要加在这里哦~要是加在document.getElementById('node' + no).style.display = 'block'这句下面就永远不会有子项显示)

document.getElementById('node' + no).style.display = 'block'}

一. api简介

d3.tree(),创建一个树状图生成器

d3.tree().size(),定义树的大小

d3.hierarchy(),层级布局,需要和tree生成器一起使用,来得到绘制树所需要的节点数据和边数据

node.descendants()得到所有的节点,已经经过转换的数据

node.links(),得到所有的边,已经经过转换的数据

二.Vue中使用

*点击节点可展开收缩

首先说树形结构,国内有个开源的js控件叫zTree,支持复选。

然后下拉框你可能需要自己做一个(html输入框+右边的一个图标按钮)。

最后,用一个隐藏的div把树形结构包起来,这个div设置成绝对定位,在下拉框右侧选择按钮的单击事件处理函数里,显示这个隐藏的div,并把它的位置设置成在下拉框下面就行了。

思路就是这样,要么楼主可以找找有没有其他更现成的控件,extjs4我记得有类似的,但是他的复选功能不太符合中国习惯,也许现在的版本改好了,你可以查查试试看。