tabs控件

tabs控件

前言

在这里插入图片描述

tabs控件简介

这个是它的文档
在这里插入图片描述
找到它的实例,用记事本打开,把需要的复制
在这里插入图片描述
放到index.jsp里,这些是从实例中复制过来的
在这里插入图片描述
先运行一遍,实现出来的效果如下图:(只不过现在还是静态的,我们需要的是得到相关的数据)
在这里插入图片描述
通过标签可以更容易的创建选项卡,我们不需要写任何Javascript代码。只需要给

标签添加一个类ID’easyui-tabs’。每个选项卡面板都通过子
标签进行创建,用法和panel(面板)相同。
所以就把刚复制的代码替换成:
在这里插入图片描述
显示结果:
在这里插入图片描述
但这还不是我们想要的结果,那个框太小了,我们想要的是全屏,只需要把宽度改一下,把宽度改成100%
在这里插入图片描述
最后代码改成这样
在这里插入图片描述
结果
在这里插入图片描述

tabs选项卡实现

我们需要添加一个新的包含小工具菜单的选项卡面板,小工具菜单图标(8x8)被放置在关闭按钮之前。
在这里插入图片描述
1.目前呢,jsp中有一个静态的首页的选项卡tab,当浏览器请求jsp的时候,会调用下列代码,造成页面端看到两个tab页

	$('#bookTabs').tabs('add',{    
	    title:'New Tab',    
	    content:'Tab Body',    
	    closable:true,    
	    tools:[{    
	        iconCls:'icon-mini-refresh',    
	        handler:function(){    
	            alert('refresh');    
	        }    
	    }]    
	});  

2.我们需求,浏览器index.jsp,看到首页一个选项卡,当点击一个树形菜单的一个元素,新增一个选项卡

3.分析,选项卡的添加是与树形菜单点击相挂钩

所以我们要在这里添加个树的事件

node:指的是json对象
在这里插入图片描述
node.text=‘New Tab’,替换一下

$(function(){
//	var ctx = $("#ctx").val();
	$('#tt').tree({    
	    url:$("#ctx").val()+'/permission.action?methodName=menuTree',
	    onClick: function(node){
//			alert(node.text);  // 在用户点击的时候提示
	    	$('#bookTabs').tabs('add',{    
	    	    title:node.text,    
	    	    content:'Tab Body',    
	    	    closable:true,    
	    	    tools:[{    
	    	        iconCls:'icon-mini-refresh',    
	    	        handler:function(){    
	    	            alert('refresh');    
	    	        }    
	    	    }]    
	    	}); 
		}
	});  
})

最后我们要做出的功能,点击新增会出现它的数据,首先专门建一个包放增加界面,这里就用到了iframe

通过菜单去打开不同的tab页

var content = '<iframe scrolling="no" frameborder="0" src="'+menuUrl+'" width="99%" height="99%"></iframe>';

在这里插入图片描述
dubugger一下
在这里插入图片描述
目前存在的问题: 重复的tab页会反复打开

针对于上面存在的问题进行分析:判断当前是否存在对应的title的选项卡,
如果存在,就切换到对应的选项卡,如果不存在,那么重新打开一个选项卡

在方法里找到

在这里插入图片描述
在这里插入图片描述
这样就解决了,在这里插入图片描述
但是还有最后一个bug,旁边的列表,如果我点击书籍管理,则数据管理下的内容会收缩。就算不论收缩,起码不会报错
存在问题, 非叶子节点按照开发角度来说是不能够打开页面的
分析: 非叶子节点都没有跳转界面的
解决办法:
在这里插入图片描述
最终index.js的代码是:

$(function(){
	var ctx = $("#ctx").val();
	$('#tt').tree({    
	    url:ctx+'/permission.action?methodName=menuTree',
	    onClick: function(node){
//			alert(node.text);  // 在用户点击的时候提示
//	    	debugger;//debuggerjs代码
//	    	目前存在的问题:重复的tab页会反复打开
//	    	针对于上面存在的问题进行分析:判断当前是否存在对应的title的选项卡,
//	    	如果存在,就切换到对应的选项卡,如果不存在,那么重新打开一个选项卡
//	    	console.log($('#bookTabs').tab('exists',node.text));
	    	if($('#bookTabs').tabs('exists',node.text)){
//	    	切换选项卡
	    		$('#bookTabs').tabs('select',node.text)
	    	}else{
//	    		新增选项卡
//	    		存在问题,非叶子节点按照开发角度来说是不能够打开页面的
//	    		分析:非叶子节点都没有跳转界面的
	    		var src=node.attributes.self.url;
	    		if(src){
//	    			如果不为空则执行
	    			var content = '<iframe scrolling="no" frameborder="0" src="'+ctx+src+'" width="99%" height="99%"></iframe>';
			    	$('#bookTabs').tabs('add',{    
			    	    title:node.text,    
			    	    content:content,    
			    	    closable:true,    
			    	    tools:[{    
			    	        iconCls:'icon-mini-refresh',    
			    	        handler:function(){    
			    	            alert('refresh');    
			    	        }    
			    	    }]    
			    	}); 
	    		}
	    		
	    	}
	
		}
	    
	});  
})

最终index.jsp的主要代码:

<title>登录后的主界面</title>
</head>
<input type="hidden" id="ctx" value="${pageContext.request.contextPath }">
<body class="easyui-layout">
		<div data-options="region:'north',border:false" 
			style="height:60px;background:#B3DFDA;padding:10px">网上书籍</div>
		<div data-options="region:'west',split:true,title:'目录'" 
			style="width:150px;padding:10px;">
			<ul id="tt"></ul>  
			</div>
		<div data-options="region:'east',split:true,collapsed:true,title:'右边'" 
			style="width:100px;padding:10px;">east region</div>
		<div data-options="region:'south',border:false" 
			style="height:50px;background:#A9FACD;padding:10px;">底部版权</div>
		<div data-options="region:'center',title:'内容'">
		<div id="bookTabs" class="easyui-tabs" style="width:100%;height:250px;">   
    <div title="首页" style="padding:20px;display:none;">   
        本站各种数据指标 (各个模块的使用情况、数据量、报表)
    </div>   
    
</div>  

	</body>

最终完成结果:
在这里插入图片描述
本次章节分享到这!加油!
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_47906421/article/details/106957680
今日推荐