js树形菜单问题

JavaScript08

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

例如你有以下节点:

节点1,节点2,节点3

有以下四种方法

//展开树

function open(objNode){

//...your code 展开树

addClose(objNode)

}

//关闭树

function close(objNode){

//...your code 关闭树

addClose(objNode)

}

//添加展开事件

function addOpen(objNode){

//objNode节点对象

objNode.detachEvent.attachEvent("onclick",close)

objNode.attachEvent("onclick",open)

}

//添加关闭事件

function addClose(objNode){

//objNode节点对象

objNode.detachEvent.attachEvent("onclick",open)

objNode.attachEvent("onclick",close)

}

那么在生成树的时候给所有节点绑定方法open(objNode)就可以了。

上面的代码是用原生的JS写的。JQuery的。。你可以在网上找找如何绑定与删除事件。