请教Div+CSS+JS树型菜单问题,我是新手,
<divid="PARENT2"><ulid="nav2"><li><ahref="#Menu=ChildMenu1"onclick="DoMenu('ChildMenu...
<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呢,请高手赐教,谢谢! 展开
<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呢,请高手赐教,谢谢! 展开
4个回答
展开全部
不太明白你描述的问题......点击里面的1或2或3,不是你设置了链接么?都跳转了,还有什么隐藏不隐藏?? 你是不是想说 点11显示11的子菜单,点12显示12的子菜单,其它(11和13)的隐藏?
如果是这个效果,你有两个错误:
1:你最大的那个无序列表<ul> 少了 闭合标签,即</ul>,你自己检查一下.
2:在css里加.collapsed{display:none;}
如果不是,就不清楚了..............................
如果是这个效果,你有两个错误:
1:你最大的那个无序列表<ul> 少了 闭合标签,即</ul>,你自己检查一下.
2:在css里加.collapsed{display:none;}
如果不是,就不清楚了..............................
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个效果只不过是一个竖向带三级菜单的导航效果,我空间里有代码
参考资料: http://hi.baidu.com/xxvsgtf21/blog/item/70fed0043cd29b1a4bfb51c2.html
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
从网上下个改改吧,网上很多的,,,总改总改自己就会了不用刻意学
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主可以M我,我有案例
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询