2010年9月10日

ASP中实现树状菜单

 

在<head></head>中加 定义菜单的函数

<script language="javascript">
function Tree()  //树状菜单对象
{
  this.start=function()  //菜单开始,bTop表示是否为最外层。
  {
    document.writeln("<table cellpadding=1 cellspacing=0>");
  }

  this.end=function()  //菜单结束
  {
    document.writeln("</table>");
  }

  this.addItem=function(cText,cLink,bChild,bShow)  //为菜单增加项,参数依次为:菜单文字、菜单链接、是否有子菜单、子菜单是否显示。
  {
    document.writeln("<tr><td><nobr><span class=menu_icon"+(bChild?" onclick=menuChange(this)":"")+">"
    +(bChild?(bShow?"-":"+"):"・")+"</span><span class=menu_space> </span><a href="+cLink+" target=\"mainFrame\">"+cText+"</a></nobr></td></tr>");
  }
 
  this.childStart=function(bShow)  //子选项开始,bShow为是否显示
  {
    document.writeln("<tr style='display:"+(bShow?"block":"none")+"'><td>");
    document.writeln ("<table cellpadding=1 cellspacing=0 style='margin-left:12px;'>");
  }

  this.childEnd=function()  //子选项结束
  {
    document.writeln("</table>");
    document.writeln("</td></tr>"); 
  }
}

function menuChange(obj)  //控制菜单显示/隐藏
{
  obj=obj.parentNode.parentNode.parentNode;
  obj.nextSibling.style.display=(obj.nextSibling.style.display=='none'?'block':'none');
  obj.cells[0].childNodes[0].childNodes[0].innerText=( obj.nextSibling.style.display=='none'?'+':'-')
}
</script>

然后在<body></body>中需要加入菜单的地方加入菜单实例,如下例子;

<script language="javascript">
//菜单实例
var cmsTree=new Tree();
cmsTree.start();
cmsTree.addItem("修改个人资料","personalright.asp",1,0);  //后面两个参数分别表示是否有子菜单、子菜单是否显示

  cmsTree.childStart(0);  //注意这个参数与上面最后一个参数是一致的
  cmsTree.addItem("基本信息","modpersonal.asp",0);
  cmsTree.addItem("教育程度","educate.asp",0);
  cmsTree.addItem("联系方式"," linkkind.asp",0);
  cmsTree.addItem("基本技能","personalart.asp",0);
  cmsTree.addItem("个人自述","personalsynopsis.asp",0);
  cmsTree.addItem("工作技能及特长","personalworkart.asp ",0);
  cmsTree.addItem("个人简历","career.asp",0)
  cmsTree.addItem("学历教育或培训经历","studysuffer.asp",0);
  cmsTree.childEnd();

 cmsTree.addItem("工作意向","personalright.asp",1,0)  //后面两个参数分别表示是否有子菜单,子菜单是否显示
  cmsTree.childStart(1);  //注意这个参数与上面最后一个参数是一致的
  cmsTree.addItem("职业,月薪,要求地区","personaljob.asp",0);
  cmsTree.childEnd();
 
cmsTree.addItem("工作机会","personalright.asp",1,0);
  cmsTree.childStart(0);  //注意这个参数与上面最后一个参数是一致的
  cmsTree.addItem("企业招聘信息","business.asp",0);

  cmsTree.childEnd();

cmsTree.addItem("帮助","help.asp",0);
cmsTree.addItem("退出","loginout.asp",0);
cmsTree.end();
</script>

 

注:在.net里,简单的菜单也可以用,方法一样的



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=742777

[点击此处收藏本文]   发表于 2006年05月17日 15:52:00

 
空空 发表于2006-05-18 12:10 AM  IP: 211.100.21.*
TrackBack来自《JavaScript实现树状菜单》

方法很多

 
kongkong 发表于2006-05-18 12:50 AM  IP: 10.1.18.*
Javascript不局限在asp和asp.net中使用,虽然古老,但这是基本功。

现在的asp.net 2.0中有TreeView控件,开发效率高多了。其实原理还是一样的,只是.net帮忙封装了javascript代码。


--
MSN:   zwens83@Hotmail.com
QQ:    15 65 20 251
UrL:    http://www.MuBlue.com
Blog:   http://www33.websamba.com/MuBlue
GGP:  http://zoozle.zhou.googlepages.com

没有评论:

发表评论

2025年的第一篇

世事变化无常,谁能想到! 各行各业公司在 “裁员滚滚”,晋升渠道关闭[苦涩]合约期真的很重要,可以说时运太重要了  祸福相依,每个人都有每个人的命运 天下无不散之宴席! 可能就差那么几天 境遇天差地别!不同企业的待遇也是差别非常大 导致不同的人境况不一样 不可一言而足! 借用人家...