我爱我爱crazy 2017-08-10 02:34 采纳率: 0%
浏览 1623
已结题

多级菜单选项点击选项显示内容且在顶部添加生成该选项名

各位大神求帮助:网页设计在多级菜单中,我要怎么实现,选择菜单选项如果该选项有下级菜单
时,点击选项弹出下级菜单。,如果选项没有下级下级菜单就弹出该选项内容,且在顶部
菜单中添加该选项名称
如果我一级菜单这样写时,我添加多级菜单时要怎么修改
/左侧菜单选项卡
window.onload=function(){
function $(id){return document.getElementById(id)}
var menu=$("admin-tap").getElementsByTagName("ul")[0];//顶部菜单容器
var tags=menu.getElementsByTagName("li");//顶部菜单
var ck=$("admin-side").getElementsByTagName("ul")[0].getElementsByTagName("li");//左侧菜单
var j;
//点击左侧菜单增加新标签
for(i=0;i var a=ck[i].getElementsByTagName("a");
ck[i].onclick=function(){
$("wellcome").style.display="none"//欢迎内容隐藏
clearMenu();
this.style.background="#47a3da";
//循环取得当前索引
for(j=0;j if(this==ck[j]){
if($("p"+j)==null){
openNew(j,this.innerHTML);//设置标签显示文字
}
clearStyle();
$("p"+j).style.backgroundColor="#47a3da";
clearContent();
$("c"+j).style.display="block";
}
}
return false;
}
}
//增删标签
function openNew(id,name){
var tagMenu=document.createElement("li");
tagMenu.id="p"+id;
name+="";
tagMenu.innerHTML=name;
//点击事件
tagMenu.onclick=function(evt){
clearMenu();
ck[id].style.background="#47a3da";
clearStyle();
tagMenu.style.backgroundColor="#47a3da";
clearContent();
$("c"+id).style.display="block";
}
//关闭点击
tagMenu.getElementsByTagName("img")[0].onclick=function(evt){
evt=(evt)?evt:((window.event)?window.event:null);
if(evt.stopPropagation){evt.stopPropagation()} //取消opera和Safari冒泡行为;
this.parentNode.parentNode.removeChild(tagMenu);//删除当前标签
var color=tagMenu.style.backgroundColor;

//设置如果关闭一个标签时,让最后一个标签得到焦点
if(color=="rgb(71, 163, 218)"){//区别浏览器对颜色解释
if(tags.length-1>=0){

                clearStyle();
                tags[tags.length-1].style.backgroundColor="#47a3da";
                clearContent();
                var cc=tags[tags.length-1].id.split("p");
                $("c"+cc[1]).style.display="block";
                clearMenu();
                ck[cc[1]].style.background="#47a3da";
            }
            else{
                clearContent();
                clearMenu();
                $("wellcome").style.display="block"
            }
        }
    }
    menu.appendChild(tagMenu);
}

//清除菜单样式
function clearMenu(){
for(i=0;i<ck.length;i++){
ck[i].style.background="";
}
}
//清除标签样式
function clearStyle(){
for(i=0;i<tags.length;i++){
menu.getElementsByTagName("li")[i].style.backgroundColor="";
}
}
//清除内容
function clearContent(){
for(i=0;i<10;i++){
$("c"+i).style.display="none";
}
}
}

  • 写回答

5条回答

  • chenjiexixi 2017-08-10 02:44
    关注

    最好在数据库建立一张菜单表,大致有id,菜单名,菜单等级,父级菜单id,菜单url(就是点击菜单跳转的页面)。
    这样进入系统先去查询数据库菜单表,这样获取信息,我以前用的zTree就这样实现的

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考