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

各位大神求帮助:网页设计在多级菜单中,我要怎么实现,选择菜单选项如果该选项有下级菜单
时,点击选项弹出下级菜单。,如果选项没有下级下级菜单就弹出该选项内容,且在顶部
菜单中添加该选项名称
如果我一级菜单这样写时,我添加多级菜单时要怎么修改
/左侧菜单选项卡
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个回答

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

qq_38494537
chenjiexixi 这个是zTree的网站http://www.treejs.cn/v3/api.php
大约 3 年之前 回复

chenjiexixi 说的很好,抢了我的台词,数据库控制最好,维护成本也低

qq_38494537
chenjiexixi 谢谢
大约 3 年之前 回复

一级二级菜单要分别有独立的列表项 为一级菜单li添加有下级菜单class js根据这个类名进行操作单击事件获取当前一级菜单的下标index,根据这个index找对应的二级菜单index 如当前菜单没有下级菜单添加内容class js根据这个类名进行操作单击事件以及内容定位操作同样根据index来获取对应的内容

设置不同的class控制是最好的方法,对有子菜单的项添加一个class,对没有子菜单的项添加另一个class
比如说一级菜单

class="class_1"
二级
class="class_1_1"
三级
class="class_1_1_1"
其他的用js控制就好了

看着答案很爽,还有字数限制……推荐数据库的方法

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐