无限级关联菜单[完全js版](树型)

这是一个使用JavaScript实现的无限级关联菜单的代码示例,由多菜鸟于2007年4月7日编写。菜单数据以数组形式存储,通过函数listTree递归展示树型结构。代码中包含了展开/折叠菜单的功能,并支持指定ID的菜单展开。
部署运行你感兴趣的模型镜像

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无限级关联菜单[完全js版](树型)</title>
<script language="JavaScript" type="text/javascript">
/*
 功能: 无限级关联菜单[完全js版](树型)
 作者: 多菜鸟
 时间: 2007-04-07
 blog: http://blog.youkuaiyun.com/kingerq/
 
 数组形如:
 menuArr[ID] = [名称, 父ID];
 
 */
 var menuArr = new Array();
 menuArr[1] = ["中国", 0];
 menuArr[2] = ["美国", 0];
 menuArr[3] = ["日本", 0];
 menuArr[4] = ["浙江", 1];
 menuArr[5] = ["福建", 1];
 menuArr[6] = ["东京", 3];
 menuArr[7] = ["杭州", 4];
 menuArr[8] = ["温州", 4];
 menuArr[9] = ["鹿城", 8];


var classmenuArr = menuArr;
var classmenuLen = menuArr.length;
//分类列表
var url = "index.php?fun=listProduct&id=";
var prefix = new Array("http://community.youkuaiyun.com/ui/scripts/System/_resource/MzTreeView/_plus1.gif",
"http://community.youkuaiyun.com/ui/scripts/System/_resource/MzTreeView/_minus1.gif",
"http://community.youkuaiyun.com/ui/scripts/System/_resource/MzTreeView/_line4.gif",
"http://community.youkuaiyun.com/ui/scripts/System/_resource/MzTreeView/_line1.gif");
//显示分类
function listTree(pid, step){
  var str = "";
  for( var i = 1; i < classmenuLen; i++ ) {
 if( classmenuArr[i] == undefined ) continue;
 if( classmenuArr[i][1] == pid ) {
   str += "<div class='cutTitle'><table width=230 border=0 cellspacing=0 cellpadding=0><tr><td width="+(20*(step+1))+">";
   for( var j=0; j<step; j++ ) {
     str += "<img src='"+prefix[2]+"' border=0>";
   }
   str += readKid(i)
          ? "<img id='img"+i+"' src='"+prefix[0]+"' onclick='chkImg("+i+", "+(step+1)+");' border=0>"
    : "<img src='"+prefix[3]+"' border=0>";
   str += "</td>";
   str += "<td width='"+(230-20*(step+1))+"' id=/"listtxt1/"><a href='"+(step==0?url.replace(/listProduct2/g, "listProduct"): url)+i+"'"+(returnGetValue("pid")==i? " class='MenuOn'" : "")+">"+classmenuArr[i][0]+"</a></td>";
   str += "</tr>";
   str += "<tr id='tr"+i+"' style='display:none;'><td colspan=2 id='l"+i+"'></td></tr>";
   str += "</table></div>";
   //alert(str);
   //str += listTree(i, step+1);
    }
  }
  return str;
}
//点击图片事件
function chkImg(pid, step){
  var d = document.getElementById("l"+pid);
  var dTr = document.getElementById("tr"+pid);
  var dImg = document.getElementById("img"+pid);
  if( dTr.style.display == "none" ) {
   d.innerHTML=listTree(pid, step);
   //document.getElementById("kkk").innerText = d.innerHTML;
   dTr.style.display = "block";
   dImg.src=prefix[1];
   if( navigator.appName == "Netscape" )
     dTr.style.display = "table-row";
  }else{
   dTr.style.display = "none";
   dImg.src=prefix[0];
  }
}
//测试是否有子项目
function readKid(pid){
  for( var i = 1; i < classmenuLen; i++ ) {
 if( classmenuArr[i] == undefined ) continue;
 if( classmenuArr[i][1] == pid ) {
   return true;
 }
  }
  return false;
}

//展开菜单
//str 以","号分隔的目录ID字符串
function spreadKid(str){
 var pat = /[/d,]+/;
 if( ! pat.test( str ) ) return;
 
 var arr = str.split(",");
 for( var i=0; i < arr.length-1; i++ ) {
   chkImg(arr[i], i+1);
 }
}
//取得指定URL参数值
function returnGetValue(pVar,pURL){
   pURL = pURL || window.location.href;
   try{
        pURL=decodeURIComponent(pURL)//即使是用decodeURI也是同样的结果
   }catch(e){
             //
   }

   var vars =pURL.split("?");
   if(vars.length==1) return "";
 
   var varsList=vars[1].split("&");
   var equalString;
   for(var i=0;equalString=varsList[i];i++){
        var equalArray=equalString.split("=");      
        if(equalArray[0]==pVar)
            return equalArray[1] || "";
   }
   return "";
}
//document.write( listTree(0,0 ) );

</script>
<style type="text/css">
<!--
.cutTitle {
    width:150px;
 height:auto;
 font-size:12px;
     /* 禁止自动换行 */
    white-space: nowrap;
    /* 隐藏超出部分 */
    overflow:hidden;
    /* 用省略号代替结尾, 只对 IE 有效 */
    text-overflow:ellipsis;
}
 -->
</style>
</head>

<body>
<script language="javascript">
document.write( listTree(0,0) );//显示列表
//spreadKid("1,4,8,9");//展开指定项
</script>
</body>
</html>

您可能感兴趣的与本文相关的镜像

ComfyUI

ComfyUI

AI应用
ComfyUI

ComfyUI是一款易于上手的工作流设计工具,具有以下特点:基于工作流节点设计,可视化工作流搭建,快速切换工作流,对显存占用小,速度快,支持多种插件,如ADetailer、Controlnet和AnimateDIFF等

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值