dtree树的使用及属性配置

http://doc.codesky.net/jiaoben/31974.html 下载dtree.zip文件 
dtree.zip压缩包介绍: 
dtree是一个由JavaScript编写成的简单的树形菜单组件,目前免费并且开源。 
目前有很多的树形菜单组件(比如ext),dtree是一种简单易懂的js组件, 
不需要复杂的操作即可生产,同时支持动态从数据库引入数据 
解压后有以下几部分: 
img文件夹: 包含树形菜单显示需要的图标 
api.html : 作者写的dtree帮助文档    
dtree.css: 树形菜单的样式 
dtree.js : js核心文件,代码都在其中 
example01.html:树形菜单实例 dtree主要方法介绍: 
dtree主要方法介绍: 
add(parameters):添加一个树节点,实际参数有9个add(id,pid,name,url,title,target,icon,iconOpen,open); 
位置 参数别名 类型 功能 
1 id int 节点自身的id(唯一) 
2 pid int 节点的父节点id 
3 name string 节点显示在页面上的名称 
4 url string 节点的链接地址 
5 title string 鼠标放在节点上显示的提示信息 
6 target string 节点链接所打开的目标frame 
7 icon string 节点关闭状态时显示的图标 
8 iconOpen string 节点打开状态时显示的图标 
9 open bool 节点第一次加载是否打开 
注:dtree.js文件中是一些默认图片的路径,可以自己配置图片和路径,我下载的在44~57行 
openAll()打开全部节点,可在树对象创建前或创建后调用 
closeAll()关闭全部节点,可在树对象创建前或创建后调用 
openTo(id,select)打开指定id的节点,可以传两个参数: 
id 指定需要打开的节点的唯一id 
  select 是否让该节点处于选中状态 
config配置 
变量 类型 默认值 描述 
target string 所有节点的target 
folderLinks bool true 文件夹可被链接 
useSelection bool true 节点可被选择高亮 
useCookies bool true 树可以使用cookie记住状态 
useLines bool true 创建带结构连接线的树 
useIcons bool true 创建带有图表的树 
useStatusText bool false 用节点名替代显示在状态栏的节点url 
closeSameLevel bool false 同级节点只允许一个节点处于打开状态 
inOrder bool false 加速父节点树的显示 

Attributes(属性) 
id : int 每个节点都有唯一ID,增加节点时需要手工定义一个ID。 
pid : int 父节点ID,根节点的父节点是-1。 
name : String 节点名称(显示名字) 
url : String 节点URL(鼠标点击跳转地址) 
title : String 鼠标移动到节点上显示的文字 
target : String 页面跳转所在的frame 
icon : String 节点关闭时显示的图标地址 
iconOpen : String 节点打开时显示的图标地址 
_io : boolean 节点是否已打开,默认值false。 
_is : boolean 节点是否被选中,默认值false。 
_ls : boolean 是否是最后一个节点,默认值false。 
_hc : boolean 是否有子节点,默认值false。 
_ai : int 在树的节点数组中的下标(位置),默认值0。 
_p : Node 父节点对象,默认值null。 

Operations(行为) 
Node(id, pid, name, url, title, target, icon, iconOpen, open) : void 构造方法,创建一个节点对象。open对应_io,表示节点是否已经打开。

节点类图

dTree 
Attributes(属性) 
obj : String 树的名称,在创建树时定义。 
aNodes : Node[] 树中的节点数组。 
aIndent : [] 数组。 
root : Node 根节点。 
selectedNode : Node 当前选择的节点。 \\d.selectedNode=节点id设置默认被选中节点 
selectedFound : boolean 是否有选中节点,默认false。 
completed : boolean 树构建html是否已完成完成,默认false。 
config : Hash数组 树的配置 
target: 设置所有节点的target,默认null 
folderLinks: 目录节点是否可以有链接,默认true 
useSelection: 节点是否可以被选择(高亮),默认true 
useCookies: 设置使用cookies保存树的状态,默认true 
useLines: 是否显示路径点线,默认true 
useIcons: 是否显示图标,默认true 
useStatusText: 是否在状态栏输出节点文字(替换原来的url显示),默认false 
closeSameLevel: 是否自动关闭兄弟节点(当打开本节点时),注意设置true时,openAll()和closeAll()不能工作,默认false 
inOrder: 如果父节点总是在子节点之前加入树,设置true有更好的效率,默认false 
icon : Hash数组 图标 
root: 根,默认'img/base.gif' 
folder: 关闭的文件夹,默认'img/folder.gif' 
folderOpen: 打开的文件夹,默认'img/folderOpen.gif' 
node: 文件,默认'img/page.gif' 
empty: 空,默认'img/empty.gif' 
line: 竖线,默认'img/line.gif' 
join: 丁线,默认'img/join.gif' 
joinBottom: 直角线,默认'img/joinbottom.gif' 
plus: 加号丁线,默认'img/plus.gif' 
plusBottom: 加号直角线,默认'img/plusbottom.gif' 
minus: 减号丁线,默认'img/minus.gif' 
minusBottom: 减号直角线,默认'img/minusbottom.gif' 
nlPlus: 无线加号,默认'img/nolines_plus.gif' 
nlMinus: 无线减号,默认'img/nolines_minus.gif' 

Operations(行为) 
dTree(objName) : void 构造方法,创建树对象。objName: 树名称。 
add(id, pid, name, url, title, target, icon, iconOpen, open) : void 在树中增加一个节点,节点对象添置到aNodes数组末尾。参数open表示节点是否已经打开。
openAll() : void 打开树中所有节点。此方法由oAll方法实现。 
closeAll() : void 关闭树中所有节点。此方法由oAll()方法实现。 
toString() : String 构建树的html。此方法主要由addNode()方法实现。返回:html。 
addNode(pNode) : String 构建pNode的所有子节点的html。参数pNode: 父节点对象。返回:html。 
node(node, nodeId) : String 构建node的html。参数node: 节点对象;nodeId: 节点在节点数组aNodes中的位置。返回:html。
indent(node, nodeId) : String 构建node前面的空格、点线、加减号的html。参数node: 节点对象;nodeId: 节点在节点数组aNodes中的位置。返回:html。
setCS(node) : void 检查并设置:1. node节点是否有子节点; 2. node节点是否是节点数组aNodes中的最后一个。参数node: 节点对象。
getSelected() : int 从cookies中获取已选中的节点,返回:节点id或null(没有选中任何节点)。 
s(id) : void 鼠标点击节点发生的动作,高亮选择的节点,并记录在cookies中。参数id: 节点在节点数组aNodes中的位置 
o(id) : void 鼠标点击+-图标发生的动作,打开或关闭指定节点,并记录在cookies中。参数id: 节点在节点数组aNodes中的位置 
oAll(status) : void 打开或关闭所有节点,并将状态记录在cookies中。参数status:true打开 fasle关闭 
openTo(nId, bSelect, bFirst) : void 打开指定节点,并将状态记录在cookies中。参数nId:节点ID或节点在节点数组aNodes中的位置;bSelect:true-打开同时被选中,false-打开不被选中;bFirst:true-nId是在节点数组aNodes中的位置,false-nId是节点ID。
closeLevel(node) : void 关闭和node同级别以及他们的下级的所有节点。参数node:节点对象。 
closeAllChildren(node) : void 关闭node的所有子节点。参数node:节点对象。 
nodeStatus(status, id, bottom) : void 改变节点的状态(关闭 或 打开)。参数status: 要设置的状态(true:打开 false:关闭);id: 节点ID;bottom: true-是最后一个节点。
clearCookie() : void 清除cookies。 
setCookie(cookieName, cookieValue, expires, path, domain, secure) : void 记录入cookies。
getCookie(cookieName) : String 从cookies中读取。 
updateCookie() : void 将所有打开的节点ID记录在cookies中。 
isOpen(id) : boolean 根据cookies的记录,判断一个节点是已经打开。参数id:节点id 


例如:tree.config.closeSameLevel=true;表示打开某级节点时,该级其他处于打开状态的同级节点会被关闭 
示例代码: 
复制代码代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html> 
<head> 
<title>Tree</title> 
<link rel="StyleSheet" href="dtree.css" type="text/css" /><!-- 引入css样式表 --> 
<script type="text/javascript" src="dtree.js"></script><!-- 引入js脚本 --> 
</head> 
<body> 
<div class="dtree"><!--创建一个div层,指定class为“dtree”,此时该层就引用了dtree的样式 --> 
<script type="text/javascript"> 
d = new dTree('d');//new一个树对象 
//d.config.useCookies=false; //不使用cookie记录树的节点状态
//d.config.useSelection=true; //高亮显示选中的节点(被选中的效果);false反之;

//设置树的节点及其相关属性 
d.add(0,-1,'My example tree'); 
d.add(1,0,'Node 1','example01.html'); 
d.add(2,0,'Node 2','example01.html'); 
d.add(3,1,'Node 1.1','example01.html'); 
d.add(4,0,'Node 3','example01.html'); 
d.add(5,3,'Node 1.1.1','example01.html'); 
d.add(6,5,'Node 1.1.1.1','example01.html'); 
d.add(7,0,'Node 4','example01.html'); 
d.add(8,1,'Node 1.2','example01.html'); 
d.add(9,0,'My Pictures','example01.html','Pictures I\'ve taken over the years','','','img/imgfolder.gif'); 
d.add(10,9,'The trip to Iceland','example01.html','Pictures of Gullfoss and Geysir'); 
d.add(11,9,'Mom\'s birthday','example01.html'); 
d.add(12,0,'Recycle Bin','example01.html','','','img/trash.gif'); 
//config配置,设置文件夹不能被链接,即有子节点的不能被链接。 
d.config.folderLinks=false; 
document.write(d); 
</script> 
</div> 
</body> 
</html> 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值