CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  JavaScript

网上载了个树型菜单代码 有很多困惑 望大哥哥们指教

楼主hongqiaowei()2006-08-04 02:33:29 在 Web 开发 / JavaScript 提问

源码如下:  
   
  <!DOCTYPE   html   PUBLIC   "-//W3C//DTD   XHTML   1.0   Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  <html   xmlns="http://www.w3.org/1999/xhtml">  
   
  <head>  
  <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312"   />  
   
  <title>   </title>  
   
   
  <style   type="text/css">  
   
  body   {   font-size:   12px;   }  
   
  *   {   margin:0;   padding:0;   }  
   
  #nav   div{   cursor:   pointer;   background:#FFFF00;   border-bottom:   dashed   1px   #ccc;   padding:5px   5px   5px   10px;   display:block;   width:160px;}  
   
  #nav   ul{list-style:   inside   circle;       display:none;       font:   12px/130%   Tahoma;   margin-left:2em;}  
   
  #nav   li{padding:2px;   margin-bottom:3px;   border-bottom:solid   1px   #eee;}  
   
  #nav   li   a{   color:#f20;   text-decoration:none;}    
   
   
  </style>  
  </head>  
   
  <body>  
   
  <div   id="nav">  
   
  <div   >系统信息公告  
  <ul   style="background-color:#00FF00">  
  <li><a   href="">留言列表</a></li>  
  <li><a   href="">发布留言</a></li>  
  <li><a   href="">查看留言</a></li>  
  </ul>  
  </div>  
   
  <div   style="background-color:#FF00FF">用户管理  
  <ul   style="background-color:#FFFFFF">  
  <li><a   href="">添加用户</a></li>  
  <li><a   href="">更改密码</a></li>  
  </ul>  
  </div>  
   
  </div>  
   
  <script   type="text/javascript">  
   
  var   cao=document.getElementById("nav");  
   
  var   dd   =   cao.childNodes;  
   
   
  for(var   i=0;i<dd.length;i++){  
   
  dd[i].lancer=i;       //--1  
   
  dd[i].childNodes[1].onclick=function   nono(){window.event.cancelBubble   =   true;}  
   
  dd[i].onclick=function   shut_open(){var   i=this.lancer;     //--2    
   
  dd[i].childNodes[1].style.display   =   (dd[i].childNodes[1].style.display   ==   "block")?"":"block";}               //--3  
   
  }  
   
  </script>  
   
  </body>  
  </html>  
   
   
  困惑:  
  1.#nav这个选择符没有声明和定义样式属性,这是CSS的什么用法?   这个选择符是不是相当于在代码中定义了   #nav   {   }?  
   
  2.我把   //--1   处的   dd[i].lancer=i;       //--2   处的   var   i=this.lancer;   去掉.想直接令shut_open()中dd[i]的i值即为for(...)中i的值,然后以此取得div对象.但结果行不通,不知为何?  
   
  3.//--3处的""我认为应该是"none",但""和"none"都行得通,晕!  
   
  望高手指点迷津,不胜感激! 问题点数:100、回复次数:4Top

1 楼leohuang(LEO)回复于 2006-08-04 09:29:13 得分 60

以下为我的拙见  
  1.#nav是把定以nav为id的对象的样式  
  2、dd[i].lancer=i是为nav中两个层做个标记,以便在点击的时候知道当前点的是哪一个  
  var   i=this.lancer是点击之后取原来赋给这个层的值,也就是他在nav层中childNodes的编号  
   
  3、因为在这个样式里#nav   ul{list-style:   inside   circle;       display:none;       font:   12px/130%   Tahoma;   margin-left:2em;}  
  已经将该ul标记为display=none,所有设为block时会显示出来,再置空时就又使用样式中的值,即display:none,所有就达到显示和隐藏的效果Top

2 楼theforever(碧海情天)回复于 2006-08-04 10:11:00 得分 20

1.  
  #nav   div{……}  
  #nav   ul{……}  
  这些是对nav里面的元素进行设置,  
  <div   id="nav">       //注意这个Top

3 楼theforever(碧海情天)回复于 2006-08-04 10:21:01 得分 20

试用了一下,虽然简单,但很精简。适当加些修饰,效果也不错。Top

4 楼hongqiaowei()回复于 2006-08-05 00:59:15 得分 0

再等一天,希望有贵人能给个肯定的答案,然后结帐!Top

相关问题

关键词

得分解答快速导航

  • 帖主:hongqiaowei
  • leohuang
  • theforever
  • theforever

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo