jQuery.Easyui 三层菜单的实现

原文地址为: jQuery.Easyui 三层菜单的实现

jQuery, Easyui,asp.net QQ讨论群:

112044258,32994605,56271061 

有图才有真相:

490174f1b849c8321c5b94c45ea780ff.jpe

三层导航菜单JSON 数据格式如下:

8f900a89c6347c561fdf2122f13be562.jpe 961ddebeb323a10fe0623af514929fc1.jpe 代码
var  _menus  =  {
 basic : [ {
  
" menuid "  :  " 10 " ,
  
" icon "  :  " icon-sys " ,
  
" menuname "  :  " 基础数据 " ,
  
" menus "  : [ {
   
" menuid "  :  " 111 " ,
   
" menuname "  :  " 基础数据1 " ,
   
" icon "  :  " icon-nav " ,
   
" url "  :  " # "
  }, {
   
" menuid "  :  " 113 " ,
   
" menuname "  :  " 基础数据12 " ,
   
" icon "  :  " icon-nav " ,
   
" url "  :  " # "
  }, {
   
" menuid "  :  " 115 " ,
   
" menuname "  :  " 基础数据13 " ,
   
" icon "  :  " icon-nav " ,
   
" url "  :  " # "
  }, {
   
" menuid "  :  " 117 " ,
   
" menuname "  :  " 基础数据14 " ,
   
" icon "  :  " icon-nav " ,
   
" url "  :  " # "
  }, {
   
" menuid "  :  " 119 " ,
   
" menuname "  :  " 基础数据15 " ,
   
" icon "  :  " icon-nav " ,
   
" url "  :  " em/enterpriseChannelObtend.action "
  } ]
 }, {
  
" menuid "  :  " 20 " ,
  
" icon "  :  " icon-sys " ,
  
" menuname "  :  " 测试一 " ,
  
" menus "  : [ {
   
" menuid "  :  " 211 " ,
   
" menuname "  :  " 测试一11 " ,
   
" icon "  :  " icon-nav " ,
   
" url "  :  " # "
  }, {
   
" menuid "  :  " 213 " ,
   
" menuname "  :  " 测试一22 " ,
   
" icon "  :  " icon-nav " ,
   
" url "  :  " # "
  } ]
 } ],
 point : [{
  
" menuid "  :  " 20 " ,
  
" icon "  :  " icon-sys " ,
  
" menuname "  :  " 积分管理 " ,
  
" menus "  : [ {
   
" menuid "  :  " 211 " ,
   
" menuname "  :  " 积分用途 " ,
   
" icon "  :  " icon-nav " ,
   
" url "  :  " # "
  }, {
   
" menuid "  :  " 213 " ,
   
" menuname "  :  " 积分调整 " ,
   
" icon "  :  " icon-nav " ,
   
" url "  :  " # "
  } ]

 }]
};

原有动态加载菜单方法有所改变:

8f900a89c6347c561fdf2122f13be562.jpe 961ddebeb323a10fe0623af514929fc1.jpe 代码
// 清空
function  Clearnav() {
    
var  pp  =  $( ' #wnav ' ).accordion( ' panels ' );

    $.each(pp, 
function (i, n) {
        
if  (n) {
            
var  t  =  n.panel( ' options ' ).title;
            $(
' #wnav ' ).accordion( ' remove ' , t);
        }
    });

    pp 
=  $( ' #wnav ' ).accordion( ' getSelected ' );
    
if  (pp) {
        
var  title  =  pp.panel( ' options ' ).title;
        $(
' #wnav ' ).accordion( ' remove ' , title);
    }
}
// 增加
function  addNav(data) {

    $.each(data, 
function (i, sm) {
        
var  menulist  =   "" ;
        menulist 
+=   ' <ul> ' ;
        $.each(sm.menus, 
function (j, o) {
            menulist 
+=   ' <li><div><a ref=" '   +  o.menuid  +   ' " href="#" rel=" '
                    
+  o.url  +   ' " ><span class="icon  '   +  o.icon
                    
+   ' " >&nbsp;</span><span class="nav"> '   +  o.menuname
                    
+   ' </span></a></div></li>  ' ;
        });
        menulist 
+=   ' </ul> ' ;

        $(
' #wnav ' ).accordion( ' add ' , {
            title : sm.menuname,
            content : menulist,
            iconCls : 
' icon  '   +  sm.icon
        });

    });

    
var  pp  =  $( ' #wnav ' ).accordion( ' panels ' );
    
var  t  =  pp[ 0 ].panel( ' options ' ).title;
    $(
' #wnav ' ).accordion( ' select ' , t);

}

//  初始化左侧
function  InitLeftMenu() {
    
    hoverMenuItem();

    $(
' #wnav li a ' ).live( ' click ' function () {
        
var  tabTitle  =  $( this ).children( ' .nav ' ).text();

        
var  url  =  $( this ).attr( " rel " );
        
var  menuid  =  $( this ).attr( " ref " );
        
var  icon  =  getIcon(menuid, icon);

        addTab(tabTitle, url, icon);
        $(
' #wnav li div ' ).removeClass( " selected " );
        $(
this ).parent().addClass( " selected " );
    });

}

/* *
 * 菜单项鼠标Hover
 
*/
function  hoverMenuItem() {
    $(
" .easyui-accordion " ).find( ' a ' ).hover( function () {
        $(
this ).parent().addClass( " hover " );
    }, 
function () {
        $(
this ).parent().removeClass( " hover " );
    });
}

大至思路就是 点击顶级菜单后左侧先清空在添加,清空和添加均使用EASYUI插件提供的 remove 和 add 方法

 代码下载


转载请注明本文地址: jQuery.Easyui 三层菜单的实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值