我正在使用JSON info创建一个动态下拉列表。基本上它可以工作,但是我不能在子菜单上附加父菜单。有没有人能提个好建议?
json:
"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"
}
]
}
]我的函数:
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]);发布于 2012-08-12 09:11:00
我会创建jQuery对象,而不是用jQuery编写原始的HTML代码:
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任何东西,所以递归使用它将不起作用。
https://stackoverflow.com/questions/11918921
复制相似问题