多级伸缩菜单——组合模式-创新互联
常见的后台管理模板都有一个伸缩菜单,我们可以通过CSS轻松实现,但是如果我们动态的添加菜单,javascript的操作Dom将会变得很繁琐,我们可以应用组合模式来轻松实现。
组合模式用于把一组相似的对象当做一个单一的对象,以树形结构的形式来组合对象,以实现部分和整体的关系。下面的实例通过多级的伸缩菜单实现组合模式,其类图如下:
实现代码:
var Menu = Class.extend({ isLeaf:true, subMenu:[], label:'菜单', href:'#', ctor:function(_label,_href,_isLeaf = true,_subMenu = []){ this.isLeaf = _isLeaf; this.subMenu = _subMenu; this.label = _label; this.href = _href; }, addSubMenu:function(_menu){ this.subMenu.push(_menu); }, toString:function(){ var html = ''; if(!this.isLeaf){ html += '
- ";
for (var i = 0;i < this.subMenu.length ; i++)
{
html += this.subMenu[i].toString();
}
html += '
具体的样式可以下载源码查看,实现的效果如图(其实是三层菜单,修改代码可以实现区分开样式):
组合模式大的缺点是违反了依赖倒置原则。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网站名称:多级伸缩菜单——组合模式-创新互联
文章链接:http://pcwzsj.com/article/jejpc.html