JavaScript邮箱系统开发(二)

一、一级导航点击

$('#J_B_main_block').on('click','a',function(e) {
    e.preventDefault();       // 阻止默认事件
    e.stopPropagation();      // 阻止事件冒泡
    $(this).parent().addClass('current').siblings().removeClass('current');
    
    var data_id = $(this).attr('data-id'), 
        data_list = SUBMENU_CONFIG[data_id], 
        html = [], 
        child_html = [], 
        child_index=0, 
        B_menubar = $('#B_menubar');

    if(B_menubar.attr('data-id') == data_id){ return false; };
	
    show_left_menu(data_list['items']);
	
    B_menubar.html(html.join('')).attr('data-id', data_id);
	
    //显示左侧菜单
    function show_left_menu(data){
      for(var attr in data){
         if(data[attr] && typeof (data[attr]) === 'object') {
             //循环子对象
             if(!data[attr].url && attr === 'items'){
               //子菜单添加识别属性
               $.each(data[attr], function(i,o){
                 child_index++;
                 o.isChild = true;
                 o.child_index = child_index;
	       });
	     }
	     show_left_menu(data[attr]); //继续执行循环(筛选子菜单)
	 }else{
	    if(attr === 'name'){
	      data.url = data.url ? data.url : '#';
		 if(!(data['isChild'])) {
		   //一级菜单
		   html.push('<dt><a href="'+ data.url +'" data-id="'+ data.id +'">'+ data.name +'</a></dt>');
		 }else{
	           //二级菜单
		   child_html.push('<li><a href="'+ data.url +'" data-id="'+ data.id +'">'+ data.name +'</a></li>');
		   //二级菜单全部push完毕
		   if(data.child_index == child_index){
		     html.push('<dd style="display:none;"><ul>'+child_html.join('')+'</ul></dd>');
		     child_html = [];
		   }
	         }
	      }
	  }
      }
};
});



你可能感兴趣的:(JavaScript邮箱系统开发(二))