js树形菜单问题

JavaScript013

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'}

树形的数据结构很固定,如果你不知道什么是树,那就先去补补数据结构吧。知道什么是树了,就开始考虑ui,ui中每个树节点应当具有一个维持当前状态的变量,这个状态就是当前节点是展开的还是收缩的,并且要添加对应的鼠标事件,以便切换节点的状态,单个节点处理完毕,就要考虑到子节点的问题,当一个节点因事件展开后,其所有子节点应该按照原有顺序显示出来,首先为了保持树形的ui特点,它们应该是距离其父节点有一定距离的,然后,它们也应当向其父节点一样能够在鼠标事件中切换状态