日期:2014-05-17  浏览次数:20825 次

dtree.js改写,实现树状节点动态添加(解析树状htmll生成xml字符串)

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