请教Div+CSS+JS树型菜单问题,我是新手,

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教Div+CSS+JS树型菜单问题,我是新手,相关的知识,希望对你有一定的参考价值。

<div id="PARENT2">
<ul id="nav2">
<li><a href="#Menu=ChildMenu1" onclick="DoMenu('ChildMenu1')">11</a>
<ul id="ChildMenu1" class="collapsed">
<a href="qns/qns01.htm" >1(AI) </a>
<a href="qns/qns02.htm" >2 </a>
<a href="qns/qns03.htm" >3</a>
</ul></li>
<li><a href="#Menu=ChildMenu2" onclick="DoMenu('ChildMenu2')">12</a>
<ul id="ChildMenu2" class="collapsed">
<a href="gls/gls01.htm">1</a>
<a href="gls/gls02.htm">2</a>
<a href="gls/gls03.htm">3</a>
</ul></li>
<li><a href="#Menu=ChildMenu3" onclick="DoMenu('ChildMenu3')">13</a>
<ul id="ChildMenu3" class="collapsed">
<a href="glq/glq01.htm">1</a>
<a href="glq/glq01.htm">2</a>
<a href="glq/glq01.htm">3</a>
</ul></li>
</div>
<div style="width:300;padding-left:30px;">
</br></br>
</div>
<script type=text/javascript><!--
var LastLeftID = "";
function menuFix()
var obj = document.getElementById("nav2").getElementsByTagName("li");

for (var i=0; i<obj.length; i++)
obj[i].onmouseover=function()
this.className+=(this.className.length>0? " ": "") + "sfhover";

obj[i].onMouseDown=function()
this.className+=(this.className.length>0? " ": "") + "sfhover";

obj[i].onMouseUp=function()
this.className+=(this.className.length>0? " ": "") + "sfhover";

obj[i].onmouseout=function()
this.className=this.className.replace(new RegExp("( ?|^)sfhover\\b"), "");



function DoMenu(emid)

var obj = document.getElementById(emid);
obj.className = (obj.className.toLowerCase() == "expanded"?"collapsed":"expanded");
if((LastLeftID!="") && (emid!=LastLeftID)) //关闭上一个Menu

document.getElementById(LastLeftID).className = "collapsed";

LastLeftID = emid;

function GetMenuID()

var MenuID="";
var _paramStr = new String(window.location.href);
var _sharpPos = _paramStr.indexOf("#");

if (_sharpPos >= 0 && _sharpPos < _paramStr.length - 1)

_paramStr = _paramStr.substring(_sharpPos + 1, _paramStr.length);

else

_paramStr = "";


if (_paramStr.length > 0)

var _paramArr = _paramStr.split("&");
if (_paramArr.length>0)

var _paramKeyVal = _paramArr[0].split("=");
if (_paramKeyVal.length>0)

MenuID = _paramKeyVal[1];


/*
if (_paramArr.length>0)

var _arr = new Array(_paramArr.length);


//取所有#后面的,菜单只需用到Menu
//for (var i = 0; i < _paramArr.length; i++)

var _paramKeyVal = _paramArr[i].split('=');

if (_paramKeyVal.length>0)

_arr[_paramKeyVal[0]] = _paramKeyVal[1];


*/


if(MenuID!="")

DoMenu(MenuID)


GetMenuID(); //*这两个function的顺序要注意一下,不然在Firefox里GetMenuID()不起效果
menuFix();
--></script>

这个JS我看不懂,我的问题是放在左侧导航,点击11会显示1,2,3的,但选择里面的1或者2或者3之后,本来显示的1,2,3,就隐藏了,我不知道要怎么改,是不是要改JS呢,请高手赐教,谢谢!

参考技术A 不太明白你描述的问题......点击里面的1或2或3,不是你设置了链接么?都跳转了,还有什么隐藏不隐藏?? 你是不是想说 点11显示11的子菜单,点12显示12的子菜单,其它(11和13)的隐藏?

如果是这个效果,你有两个错误:
1:你最大的那个无序列表<ul> 少了 闭合标签,即</ul>,你自己检查一下.
2:在css里加.collapseddisplay:none;

如果不是,就不清楚了..............................
参考技术B 你这个效果只不过是一个竖向带三级菜单的导航效果,我空间里有代码

参考资料:http://hi.baidu.com/xxvsgtf21/blog/item/70fed0043cd29b1a4bfb51c2.html

本回答被提问者采纳
参考技术C 从网上下个改改吧,网上很多的,,,总改总改自己就会了不用刻意学 参考技术D 楼主可以M我,我有案例

以上是关于请教Div+CSS+JS树型菜单问题,我是新手,的主要内容,如果未能解决你的问题,请参考以下文章

我是纯新手,请教node.js的js的文件应该放在哪

C#如何实现树型菜单

我是JAVA新手,向大家请教一个问题.

急.......JS实现Tab菜单的问题

在 CSS 中垂直对齐和定位父 DIV

我是Delphi新手,现请教一个调用DLL的问题.