1.先来介绍一下. dtree 的用法.(我引用了以前我收集的一篇文章.还比较详细,出处不记得啦).文章下面会附带dtree用法的例子.
???????? Dtree目录树的总结
????????????????? 一:函数
?????????????????????????? 1:页面中
????????????????????????????? tree.add(id,pid,name,url,title,target,icon,iconOpen,open);
????????????????????????????????? 参数说明:
????????????????????????????????????????????? id???????? :节点自身的id
????????????????????????????????????????????? pid?????? :节点的父节点的id
????????????????????????????????????????????? name??? :节点显示在页面上的名称
????????????????????????????????????????????? url??????? :节点的链接地址
????????????????????????????????????????????? title????? :鼠标放在节点上所出现的提示信息
????????????????????????????????????????????? target?? :节点链接所打开的目标frame(如框架目标mainFrame,_blank,_self 类)
????????????????????????????????????????????? icon????? :节点关闭时的显示图片的路径
????????????????????????????????????????????? iconOpen:节点打开时的显示图片的路径
????????????????????????????????????????????? open??? :布尔型,节点是否打开(默认为false)
???????????????????????????????????????????? 注:open项:顶级节点一般采用true,即pid是-1的节点
??????????????????????????? 2:dtree.js文件中
???????????????????????????????????????????? 约87-113行是一些默认图片的路径,注意要指对。
二:页面中的书写
????????? 1:默认值的书写规则(从左至右,依次省略)
????????????????????????? 即 tree.add(id,pid,name,url);后面5个参数可以省略
????????? 2:有间隔时的默认值(如存在第6个参数,但第5个参数想用默认值)
???????????????????????? 即 tree.add(id,pid,name,url,"",target);必须这样写
???????? 3:样式表
?????????? (1):可以将dtree.css中的样式附加到你的应用中的主css中,如a.css
?????????? (2):也可以同时引用dtree.css与a.css两个文件,但前提条件是两个css文件中不能有重复的样式
?2、下面是我对源码的改造,主要是添加了一个双击事件,并且添加了一些动态添加节点的功能。
首相附上源码的修改:
/*--------------------------------------------------|
?
| dTree 2.05 | www.destroydrop.com/javascript/tree/ |
?
|---------------------------------------------------|
?
| Copyright (c) 2002-2003 Geir Landr? ? ? ? ? ? ? ? |
?
| ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
?
| This script can be used freely as long as all ? ? |
?
| copyright messages are intact. ? ? ? ? ? ? ? ? ? ?|
?
| ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
?
| Updated: 17.04.2003 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
?
|--------------------------------------------------*/
?
// Node object
function Node(id, pid, name, url, dcfun, title, target, icon, iconOpen, open)
{
?
this.id = id;
?
this.pid = pid;
?
this.name = name;
?
this.url = url;
// lin 增加双击事件定义
this.dcfun = dcfun;
?
this.title = title;
?
this.target = target;
?
this.icon = icon;
?
this.iconOpen = iconOpen;
?
this._io = open || false;
?
this._is = false;
?
this._ls = false;
?
this._hc = false;
?
this._ai = 0;
?
this._p;
?
};
?
// Tree object
?
function dTree(objName, htmlContainer)
{
?
this.config = {
?
target : null,
?
folderLinks : true,
?
useSelection : true,
?
useCookies : true,
?
useLines : true,
?
useIcons : true,
?
useStatusText : false,
?
closeSameLevel : false,
?
inOrder : false
?
}
?
this.icon = {
?
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/j