首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery动态下拉菜单-附加问题

jquery动态下拉菜单-附加问题
EN

Stack Overflow用户
提问于 2012-08-12 08:58:17
回答 1查看 425关注 0票数 1

我正在使用JSON info创建一个动态下拉列表。基本上它可以工作,但是我不能在子菜单上附加父菜单。有没有人能提个好建议?

json:

代码语言:javascript
复制
 "navigation":[
      {
         "title":"Home",
         "link":"index.html"
      },
      {
         "title":"Products",
         "link":"product.html",
         "subnav":[
            {
               "title":"Webapps",
               "link":"products/webapps.html"
            },
            {
               "title":"Mobile Apps",
               "link":"products/mobile-apps.html"
            }
         ]
      }
   ]

我的函数:

代码语言:javascript
复制
var naviHandler = function (navi) {
    var localNaviData = navi, ul = '<ul>',naviLink="";
    $.map(localNaviData, function (val,i) {
        naviLink +='<li>'
        if(val.subnav){
            naviLink += naviHandler(val.subnav)
        }else{
            naviLink +='<a href='+val.link+'>'+val.title+'</a>'
        }

    })

    naviLink +='</li></ul>';
    $('header').find('nav').append(naviLink);
    }

naviHandler(localData[obj]);
EN

回答 1

Stack Overflow用户

发布于 2012-08-12 09:11:00

我会创建jQuery对象,而不是用jQuery编写原始的HTML代码:

代码语言:javascript
复制
var create_menu = function(navi) {
    var $ul = $('<ul />');

    $.map(navi, function(val, i) {
        var $li = $('<li />');

        if (val.subnav) {
            create_menu(val.subnav).appendTo($li);
        } else {
            $('<a />', {'href': val.link}).text(val.title).appendTo($li);
        }

        $li.appendTo($ul);
    });

    return $ul;
}

$('header nav').append(create_menu(localData[obj]));

您的问题是该函数没有return任何东西,所以递归使用它将不起作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11918921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档