之前做的时候是一级菜单一个list,二级菜单一个list;
现在要加三级菜单了,感觉不能像以前那么做了。
求教怎么做合适呢?数据库:mysql。。朋友告诉我用递归,可是没用过,不会用哇。大神们有没有其他好的实现方案呢?导航栏菜单

解决方案 »

  1.   

    id ,父节点id ,code ,name
    递归查询
      

  2.   

    <!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>
        <title>第一个简单的jQuery程序</title><link type="text/css" rel="stylesheet" href="../css/fristDiv.css" />
        <script language="javascript" type="text/javascript" 
                src="../js/jquery-1.4.1.js"></script>
    <script type="text/javascript" src="../js/jquery.cookie.js"></script>
        <script type="text/javascript">
        $(document).ready(function(){ var str=[{caidan:"菜单1",son:[{name:"菜单11",url:"ddd",id:"11"},{name:"菜单12",url:"ddd",id:"12"},{name:"菜单13",url:"ddd",id:"13"}]},
     {caidan:"菜单2",son:[{name:"菜单21",url:"ddd",id:"21"},{name:"菜单22",url:"ddd",id:"22"},{name:"菜单23",url:"ddd",id:"23"}]},
     {caidan:"菜单3",son:[{name:"菜单31",url:"ddd",id:"31"},{name:"菜单32",url:"ddd",id:"32"},{name:"菜单33",url:"ddd",id:"33"}]}]; var str1=$("<div class=\"fristDiv\"></div>").css("width","180px").appendTo($("body"));
    var st=$("<ul></ul>").appendTo($(".fristDiv"));
    $(str).each(function(cs,ts){
    var li=$("<li class=\"hmain\"></li>");
    $("<div class=\"er\" ></div>").text(ts.caidan).appendTo(li);
    var ul=$("<ul></ul>");
    $.each(ts.son,function(ps,pt){
    var py=$("<li class=\"san\">"+pt.name+"</li>").attr("id",pt.id).appendTo(ul);
    py.click(function(){
    $.cookie('id', pt.id, {path: '/'});
    window.location.href="../html/javaScript.html";
    });
    });
    ul.appendTo(li);
    li.appendTo(st); });


     var _itemid = $.cookie('id');
     if(_itemid){
      $("#"+_itemid).css("background-image","url(../images/z_35.jpg)");
     } $(".hmain").hover(function(){
    $(this).children("ul").slideToggle();

    },function(){
    $(this).children("ul").slideToggle();

    });
    });    </script>
    </head>
    <body></body>
    </html>
      

  3.   

    递归这里有,绑定好父id  剩下的就是js控制显示 然后就没什么问题了
    http://blog.csdn.net/chenghui0317/article/details/9426759
      

  4.   


    递归查到的结果是什么样子的,javaBean应该怎么去设计,应该是一体的吧?
      

  5.   

    我设计的肯定是有父id的,查询出来的是list的navi对象,我在程序里怎么保存呢?多重map?
      

  6.   

    迭代查询出来之后不就是一个列表吗??然后用你说的list封装,然后展示在前台,这个应该蛮简单的吧?
      

  7.   

    额我以为是递归查出来的会自动把子id归类到父id下,然后一个list传给前台。前台直接遍历就可以了。或者说navi里的一个属性是List<Navi>,把这个菜单的子菜单收集成一个list放进去,前台取得时候只需要判断他的list属性有没有值,听起来可行,但是实施起来并不是那么简单。或者说我没有简单的方法。之前并没有接触过递归,所以并不明白使用递归会产生什么样的效果。
      

  8.   

    可以考虑用ajax实现呀