一、tree(树)
1、简介
树控件在web页面中一个将分层数据以树形结构进行显示。它提供用户展开、折叠、拖拽、编辑和异步加载等
2、使用
方式一:
树控件使用<ul>元素定义。标签能够定义分支和子节点。节点都定义在<ul>列表内的<li>元素中。以下显示的元素将被用作树节点嵌套在<ul>元素中.(①样式缺陷②不好做数据的渲染,树形结构的动态显示)
1. <ul id="tt" class="easyui-tree">
2. <li>
3. <span>Folder</span>
4. <ul>
5. <li>
6. <span>Sub Folder 1</span>
7. <ul>
8. <li>
9. <span><a href="#">File 11</a></span>
10. </li>
11. <li>
12. <span>File 12</span>
13. </li>
14. <li>
15. <span>File 13</span>
16. </li>
17. </ul>
18. </li>
19. <li>
20. <span>File 2</span>
21. </li>
22. <li>
23. <span>File 3</span>
24. </li>
25. </ul>
26. </li>
27. <li>
28. <span>File21</span>
29. </li>
30. </ul>
方式二:
树控件也可以定义在一个空<ul>元素中并使用Javascript加载数据。
导入tree_data1.json到WebContent目录下
界面:
<ul id="tt"></ul>
index.js:
$('#tt').tree({
url:'tree_data.json'
});
效果图:
二、Tabs(选项卡)
1、通过标签创建选项卡
通过标签可以更容易的创建选项卡,我们不需要写任何Javascript代码。只需要给<div/>标签添加一个类ID'easyui-tabs'。每个选项卡面板都通过子<div/>标签进行创建,用法和panel(面板)相同。
<div id="tt" class="easyui-tabs" style="width:500px;height:250px;">
<div title="Tab1" style="padding:20px;display:none;">
tab1
</div>
<div title="Tab2" data-options="closable:true" style="overflow:auto;padding:20px;display:none;">
tab2
</div>
<div title="Tab3" data-options="iconCls:'icon-reload',closable:true" style="padding:20px;display:none;">
tab3
</div>
</div>
三、实例
1、需求
1、点击左侧显示右侧Tab
1.1、给菜单添加点击事件
1.2、调用tabs选项卡打开对应的界面
选项卡打开
选项卡对应界面显示
1.3、新建对应的打开界面
2、不能打开重复的 Tab
拿到目前所有打开的TABS选项卡,与将要打开的选项卡做对比(exists)
存在 true:不打开
存在 false:打开
3、对于已经存在的Tab选项,被点击时应该默认被选中\
4、点击菜单,能够访问对应的界面,而非文字内容
2、代码展示
index.jsp界面(展示界面)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>书籍后管主界面</title>
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/static/js/jquery-easyui-1.5.1/themes/black/easyui.css"">
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/static/js/jquery-easyui-1.5.1/themes/icon.css">
<script type="text/javascript" src="${pageContext.request.contextPath }/static/js/jquery-easyui-1.5.1/jquery.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath }/static/js/jquery-easyui-1.5.1/jquery.easyui.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath }/static/js/index.js"></script>
</head>
<body class="easyui-layout">
<div data-options="region:'north',title:'网上书城',split:true" style="height:100px;"></div>
<div data-options="region:'south',title:'版权信息',split:true" style="height:100px;"></div>
<!-- <div data-options="region:'east',iconCls:'icon-reload',title:'East',split:true" style="width:100px;"></div> -->
<div data-options="region:'west',title:'菜单管理',split:true" style="width:200px;">
<ui id="stuMenu"></ui>
</div>
<div data-options="region:'center',title:'内容'" style="padding:5px;background:#eee;">
<div id="stuTabs" class="easyui-tabs" style="width:100%;height:100%;">
</div>
</div>
</body>
</html>
index.js界面(给index.jsp添加事件)
$(function(){
/**
* $.ajax无刷新 $.hello
* $.exrtends("hello",function(){
* alert("hello");
* })
* $.hello();
* 1、tree方法时通过$.extends()拓展出来的
* 2、tree方法做的事情
* $('#tt').append(" <li>
* <span>File21</span>
* </li>")
* .append(" <li>
* <span>File21</span>
* </li>")
*
* 需求:
* 1、点击左侧显示右侧Tab
* 1.1、给菜单添加点击事件
* 1.2、调用tabs选项卡打开对应的界面
* 选项卡打开
* 选项卡对应界面显示
* 1.3、新建对应的打开界面
* 2、不能打开重复的 Tab
* 拿到目前所有打开的TABS选项卡,与将要打开的选项卡做对比(exists)
* 存在 true:不打开
* 存在 false:打开
* 3、对于已经存在的Tab选项,被点击时应该默认被选中
* 4、点击菜单,能够访问对应的界面,而非文字内容
*
*/
$('#stuMenu').tree({
url:'tree_data1.json',
onClick:function(node){
// alert(node.text);//在用户电机的时候提示
// 判断当前将要打开的选项卡是否存在
var exists=$('#stuTabs').tabs('exists',node.text);
// alert(node.attributes.url);
if(exists){
// 对于已经存在的Tab选项,被点击时应该默认被选中
$('#stuTabs').tabs('select',node.text);
}else{
// jframe 打开存在的Tab
$('#stuTabs').tabs('add',{
title:node.text,
content:'<iframe width="100%" height="100%" src="'+node.attributes.url+'"></iframe>',
closable:true,
tools:[{
iconCls:'icon-mini-refresh',
handler:function(){
alert('refresh');
}
}]
});
}
}
});
})
2、树的数据格式 (tree_data1.json)
每个节点可以包括下列属性:
①id:节点的 id,它对于加载远程数据很重要。
②text:要显示的节点文本。
③state:节点状态,'open' 或 'closed',默认是 'open'。当设置为 'closed' 时,该节点有子节点,并且将从远程站点加载它们。
④checked:指示节点是否被选中。
⑤attributes:给一个节点添加的自定义属性。
⑥children:定义了一些子节点的节点数组。
[{
"id":1,
"text":"My Documents",
"children":[{
"id":11,
"text":"Photos",
"state":"closed",
"children":[{
"id":111,
"text":"Friend"
},{
"id":112,
"text":"Wife"
},{
"id":113,
"text":"Company"
}]
},{
"id":12,
"text":"Program Files",
"children":[{
"id":121,
"text":"Intel",
"attributes":{
"url":"demo1.jsp",
"p2":"Custom Attribute2"
}
},{
"id":122,
"text":"Java",
"attributes":{
"url":"demo2.jsp",
"p2":"Custom Attribute2"
}
},{
"id":123,
"text":"Microsoft Office"
},{
"id":124,
"text":"Games",
"checked":true
}]
},{
"id":13,
"text":"index.html"
},{
"id":14,
"text":"about.html"
},{
"id":15,
"text":"welcome.html"
}]
}]
项目结构: