本例子使用json数据,拼接ul和li来实现的
效果图:
1.准备json数据:
复制代码 代码如下:
var menuData = [
{id:0,pid:-1,name:"订购产品",url:"",children:[
{id:1,pid:0,name:"电脑配件",url:"https://www.",children:[
{id:20,pid:1,name:"cpu",url:"https://www.",children:[
{id:30,pid:20,name:"Intel",url:"https://www.",children:[
{id:3000,pid:30,name:"Intel 01",url:""},
{id:3001,pid:30,name:"Intel 02",url:""},
{id:3002,pid:30,name:"Intel 03",url:""},
{id:3003,pid:30,name:"Intel 04",url:""},
{id:3004,pid:30,name:"Intel 05",url:""},
{id:3005,pid:30,name:"Intel 06",url:""},
{id:3006,pid:30,name:"Intel 07",url:""},
{id:3007,pid:30,name:"Intel 08",url:""},
{id:3008,pid:30,name:"Intel 09",url:""}
]},
{id:31,pid:20,name:"AMD",url:"https://www.",children:[
{id:3100,pid:31,name:"AMD 01",url:""},
{id:3101,pid:31,name:"AMD 02",url:""},
{id:3102,pid:31,name:"AMD 03",url:""},
{id:3103,pid:31,name:"AMD 04",url:""},
{id:3104,pid:31,name:"AMD 05",url:""},
{id:3105,pid:31,name:"AMD 06",url:""},
{id:3106,pid:31,name:"AMD 07",url:""},
{id:3107,pid:31,name:"AMD 08",url:""},
{id:3108,pid:31,name:"AMD 09",url:""}
]}
]},
{id:21,pid:1,name:"内存",url:"https://www."},
{id:22,pid:1,name:"硬盘",url:"https://www."},
{id:23,pid:1,name:"主板",url:"https://www."},
{id:24,pid:1,name:"显卡",url:"https://www."},
{id:25,pid:1,name:"显示器",url:"https://www."},
{id:26,pid:1,name:"主机箱",url:"https://www."},
{id:27,pid:1,name:"主机箱电源",url:"https://www."},
{id:28,pid:1,name:"键鼠(有线)",url:"https://www."},
{id:29,pid:1,name:"键鼠(无线)",url:"https://www."}
],url:"https://www."},
{id:101,pid:0,name:"监控器材",children:[
{id:102,pid:101,name:"摄像头",url:"https://www."},
{id:103,pid:101,name:"摄像头",url:"https://www."},
{id:104,pid:101,name:"摄像头",url:"https://www."},
{id:112,pid:101,name:"摄像头",url:"https://www."},
{id:113,pid:101,name:"摄像头",url:"https://www."},
{id:114,pid:101,name:"摄像头",url:"https://www."},
{id:115,pid:101,name:"摄像头",url:"https://www."},
{id:116,pid:101,name:"摄像头",url:"https://www."},
{id:117,pid:101,name:"摄像头",url:"https://www."}
],url:"https://www."},
{id:201,pid:0,name:"数码产品",children:[
{id:202,pid:201,name:"摄像头",url:"https://www."}
],url:"https://www."},
{id:301,pid:0,name:"网络产品",children:[
{id:302,pid:301,name:"摄像头",url:"https://www."}
],url:"https://www."},
{id:401,pid:0,name:"打印耗材",children:[
{id:402,pid:401,name:"打印机",url:"https://www."},
{id:403,pid:401,name:"油墨",url:"https://www."},
{id:404,pid:401,name:"纸张",url:"https://www."},
{id:405,pid:401,name:"摄像头",url:"https://www."},
{id:406,pid:401,name:"摄像头",url:"https://www."},
{id:407,pid:401,name:"摄像头",url:"https://www."},
{id:408,pid:401,name:"摄像头",url:"https://www."}
],url:"https://www."}
]},
{id:1000,pid:-1,name:"我的订单",url:"",children:[
{id:1001,pid:1000,name:"已过期订单",url:""},
{id:1001,pid:1000,name:"已付款订单",url:""}
]},
{id:2000,pid:-1,name:"公司信息",url:"",children:[
{id:2001,pid:2000,name:"最新新闻",url:""},
{id:2002,pid:2000,name:"公司地址",url:""}
]}
];
2.html代码:
复制代码 代码如下:
<div id="menu"><ul id="baseMenu"></ul></div>
3.解析json数据(plugin-menu.js文件):刚学会写jquery插件,写的还比较乱,凑合着看吧
复制代码 代码如下:
(function($){
$.fn.extend({
menu:function(options){
var defaults = {
data:[],
ulId:"baseMenu"
};
var options = $.extend(defaults, options);
// 开始拼接ul,li
$.each(options.data,function(i,v){
var li = $("<li id='"+options.data[i].id+"' name='"+options.data[i].pid+"'></li>");
var _a = $("<a>"+options.data[i].name+"</a>");
_a.attr("href",options.data[i].url)
.appendTo(li);
_each(options.data[i],li);
li.appendTo($("#"+options.ulId));
});
// 给li添加事件
$(this).find("li").hover(function(){
var id = $(this).attr("id");
$(this).find("ul[name='"+id+"']").show();
},function(){
var id = $(this).attr("id");
$(this).find("ul[name='"+id+"']").hide();
});
}
});
})(jQuery);
因为支持无限级,所以肯定会用到递归方法:
复制代码 代码如下:
function _each(data,li){
if(data==undefined||data.children==undefined){
return false;
}
var ul = $("<ul name='"+data.id+"' style='display:none;'></ul>");
$.each(data.children,function(i,v){
var _li = $("<li id='"+data.children[i].id+"' name='"+data.children[i].pid+"'></li>");
var _a = $("<a>"+data.children[i].name+"</a>");
_a.attr("href",data.children[i].url)
.attr("target","_blank")
.appendTo(_li);
if(data.children[i].children!=undefined){
_each(data.children[i],_li);
}
_li.appendTo(ul);
});
ul.appendTo(li);
}
4.调用插件:
复制代码 代码如下:
$(function() {
$("#menu").menu({data:menuData,ulId:"baseMenu"});
});
最后,css样式:
复制代码 代码如下:
ul,li{list-style:none;padding:0px;margin:0px;}
#menu *{line-height:30px;}
#menu a{text-decoration:none;}
#menu ul{text-align:left;}
#menu>ul>li{text-align:center;width:80px;float:left;}
#menu>ul>li>a{color:#000;}
#menu>ul>li:hover{background:#F0F0F0;}
#menu>ul>li ul{display:none;width:150px;position:absolute;background:#c1cd94;box-shadow:2px 2px 2px #000;-webkit-box-shadow:2px 2px 2px #000;
-moz-box-shadow:2px 2px 2px #123;}
#menu>ul>li>ul li{padding-left:5px; position:relative;}
#menu>ul>li>ul li>a{color:#000;}
#menu>ul>li>ul li:hover{background:#d3dbb3;}
#menu>ul>li>ul>li ul{left:150px; top:0px;}
相关推荐:
ChatGPT手机下载后打不开?可能是这些问题导致的,解决方法在这里!,孤城ai动画
文章AI生成软件高效创作新纪元
优化收费,助力企业提升效益,实现共赢,宜州餐饮网站建设
代哥SEO-让您的网站迅速登顶搜索引擎的秘密武器,济南关键词的排名优化
SEO资讯:最新趋势,提升网站排名,快速突破流量瓶颈,廊坊seo推广咨询服务
SEO挣钱之道:如何通过SEO实现网络盈利,宁晋网站建设商家
软件AI的全称:人工智能驱动未来的关键力量
为什么网站要做seo,网站做seo的目的是什么 ,ai初选
seo网站是什么找行者SEO,seo分析网站 ,ai图文梅花
产品经理seo是什么,产品经理seo是什么意思 ,ai政府公文写作 软件
专业SEO助力企业在激烈市场竞争中脱颖而出,嘉兴海外网站推广价格
ChatGPT不能加载过去的对话,如何提升你的使用体验?,ai智能衣服
seo该从什么开始,seo是什么时候开始的 ,ai写作免费英文怎么说
SEO精通:让你的内容在搜索引擎中脱颖而出,跨境电商 推广营销
在线AI文章生成:内容创作新革命
ChatGPT不能用?揭秘你可能忽视的真相和解决方法,强国ai2022
ChatGPTO1Pro模型:开启AI新纪元,免费应用带来无尽可能,苹果上的ai写作在哪里
ChatGPT无法使用?了解原因及解决方法,轻松恢复智能对话体验!,ai满版图案
AI撰写大数据解决方案:开启智能数据时代的新篇章,ai头号公敌
seo要学什么语言,做seo需要什么语言 ,ai martino
AI一键生成文章免费:革新写作方式,提升创作效率
SEO字:如何通过精准关键词提升网站流量与排名,赣州于都网站推广
文章生成AI:让写作轻松高效的神奇工具
SEO学费多少钱?揭秘SEO培训的投资价值与回报!,郴州网站推广多少钱一个
ChatGPT:引领智能对话新潮流,助力未来科技,ai写作免费议论文
自动生成文章的AI软件,助力内容创作的未来
ChatGPT免费版每天提问有次数限制吗?揭秘如何高效使用AI助手!,机甲ai手绘
AI智能软件:未来科技的核心力量
在线AI文章生成:智能写作的无限可能
AI免费写文章生成器高效写作新革命
AI搜索相似文章怎么做?揭秘高效文章检索的核心技术!,程式ai软件
SEM做得好可以取代SEO吗?浅析两者的异同与未来趋势,王道ai
SEO流程全解析:如何提升网站流量与排名,账号如何营销推广
seo适合什么职业,seo有前途么 ,ai小精灵
为什么做抖音seo,为什么做抖音推广 ,描边ai虚线
seo线索收集是什么,seo线索收集是什么意思 ,ai生活ai童童
GPT哪个模型是最新的?AI语言生成的未来,ai回头
seo词库优化,搜索词条优化 ,ai点选择
《“查看更多”背后的秘密:让你的人生更加丰富多彩!》,宁安公司网站建设
seo简报什么意思,seo工作汇报 ,万花筒 ai
ChatGPT5.0为什么一直没出来?背后的技术与战略,元宵节ai趣赏月
seo需要懂什么源码,seo需要懂什么源码技术 ,ai 纤维
SEO非常:如何利用SEO提升网站排名与流量,助力品牌快速成长,绥化短视频营销推广
AI网站开发与代码创新:引领未来数字化变革的关键,ai ay规则
《权重参谋:让您的网站轻松登顶搜索引擎的秘密武器》,设计微信社群私域营销推广简案
今时CMS:引领数字化转型的智慧之选,河南seo优化网站联系方式
ChatGPT页面无法访问?解决方案,让你轻松摆脱困扰!,ai染发颜色
SEO找出网站流量提升的终极策略,带你走向搜索引擎巅峰!,朝阳模板网站建设价格
AI一键生成文章网页版,让内容创作更简单高效
SEO合同:确保您网站优化成功的关键保障,微博营销推广规则最新