社区
JavaScript
帖子详情
net_lover(孟子E章) 麻烦进一下
Iamdemon88
2004-01-11 10:46:06
树形目录问题
在你的树里面http://xml.sz.luohuedu.net/xml/foldertree/foldertree.htm
我加一个节点
tree.addNode(new node(20,"文件aaaa2",6,"file","#",""));对了
但要是tree.addNode(new node(20,"文件aaaa2",12,"file","#",""));
就不对了,明明有12这个父节点啊
这是为什么啊?
...全文
39
6
打赏
收藏
net_lover(孟子E章) 麻烦进一下
树形目录问题 在你的树里面http://xml.sz.luohuedu.net/xml/foldertree/foldertree.htm 我加一个节点 tree.addNode(new node(20,"文件aaaa2",6,"file","#",""));对了 但要是tree.addNode(new node(20,"文件aaaa2",12,"file","#","")); 就不对了,明明有12这个父节点啊 这是为什么啊?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
loveweb
2004-01-11
打赏
举报
回复
晕少了个字
是
要不你回复不了了
loveweb
2004-01-11
打赏
举报
回复
帮顶
要不你回复了
呵呵
Iamdemon88
2004-01-11
打赏
举报
回复
/** 画出节点 */
function drawNode(node) {
document.write("<table border='0' cellspacing='0' cellpadding='0'>");
document.write("<tr style='font-size:12px'><td>");
this.drawFrontLine(node);
if (node.type == "folder")
{
document.write("<a onClick='clickOnFolder()' onFocus='this.blur()' href='#'><img border='0' src='"+node.fImage+"'></a>");
document.write("<a onFocus='this.blur()' href='"+node.url+"' target='"+node.target+"'><img border='0' src='"+node.image+"'></a>");
document.write("</td><td valign='middle'>");
document.write("<a onFocus='this.blur()' id='folderLink' href='"+node.url+"' target='"+node.target+"'>"+node.name+"</a>");
} else {
document.write("<img border='0' src='"+node.fImage+"'>");
document.write("<a onFocus='this.blur()' href='"+node.url+"' target='"+node.target+"'><img border='0' src='"+node.image+"'></a>");
document.write("</td><td valign='middle'>");
document.write("<a onFocus='this.blur()' href='"+node.url+"' target='"+node.target+"'>"+node.name+"</a>");
}
document.write("</td></tr>");
document.write("</table>");
}
/** 画出整个树的节点组 */
function drawNodes(node) {
if (node.type != "root")
{
document.write("<div style='display:none'>");
}
for (var i=1;i<this.length;i++)
{
if (this.nodes[i].parentId!=null && this.nodes[i].parentId == node.id)
{
this.drawNode(this.nodes[i]); //画出节点
this.drawNodes(this.nodes[i]); //递归画出整个节点组的节点
}
}
if (node.type != "root")
{
document.write("</div>");
}
}
/** 画出节点前的前导图片,有空格或线条图片.
如果其父节点是一个末节点,那么该对应列的前导图片为空格图片.
如果不是末节点,应该添加线条图片.
这里进行了递归运算,但由于其图片顺序为反顺序,所以设置一个tempStr来暂存需要画出的图片,
用以保证其图片顺序为正确顺序. */
function drawFrontLine(node) {
var tempStr = "";
for (var i=1;i<this.length;i++)
{
if (this.nodes[i].id == node.parentId)
{
if (this.nodes[i].isLast)
{
tempStr = "<img src='"+img_blank+"'>" + tempStr;;
} else {
tempStr = "<img src='"+img_line+"'>" + tempStr;
}
this.drawFrontLine(this.nodes[i]);
}
}
document.write(tempStr);
}
/** 当点击目录节点的前导"加号|减号"图片时,展开层或收缩层,并用相应的图片替代现有图片,实现动态收缩动作 */
function clickOnFolder() {
var srcIndex = event.srcElement.sourceIndex;
var divElement = document.all[srcIndex+5]; //得到层对象
var imgElement = document.all[srcIndex+2]; //得到图片对象
var fimgElement = document.all[srcIndex]; //得到前导图片对象(即它本身)
if (divElement.style.display == "none")
{
divElement.style.display = "";
imgElement.src=img_folder_open;;
if (fimgElement.src!=null && fimgElement.src.indexOf(img_plus)!=-1)
{
fimgElement.src=img_minus;
} else {
fimgElement.src=img_minus_last;
}
} else {
divElement.style.display = "none";
imgElement.src=img_folder_close;
if (fimgElement.src!=null && fimgElement.src.indexOf(img_minus)!=-1)
{
fimgElement.src=img_plus;;
} else {
fimgElement.src=img_plus_last;
}
}
}
</script>
</HEAD>
<BODY>
<script type="text/javascript">
var tree = new tree();
var root = new root(1,"根目录","#","");
tree.addRoot(root);
tree.addNode(new node(2,"a",1,"folder","#",""));
tree.addNode(new node(4,"aa",2,"folder","#",""));
tree.addNode(new node(6,"aaa1",4,"folder","#",""));
tree.addNode(new node(7,"b",1,"folder","#",""));
tree.addNode(new node(8,"c",1,"folder","#",""));
tree.addNode(new node(9,"cc",8,"folder","#",""));
tree.addNode(new node(10,"文件ccc1",9,"file","#",""));
tree.addNode(new node(11,"文件aaaa1",6,"file","#",""));
tree.addNode(new node(20,"文件aaaa2",12,"file","#",""));
tree.addNode(new node(12,"aaa2",4,"folder","#",""));
tree.addNode(new node(13,"文件ccc2",9,"file","#",""));
tree.addNode(new node(14,"文件bb",7,"file","#",""));
tree.addNode(new node(15,"文件cc",8,"file","#",""));
tree.addNode(new node(16,"文件aaa",4,"file","#",""));
tree.addNode(new node(17,"文件aa",2,"file","#",""));
tree.addNode(new node(18,"文件d",1,"file","#",""));
tree.addNode(new node(19,"文件ccc3",9,"file","#",""));
tree.drawRoot();
tree.drawNodes(tree.root);
</script>
</BODY>
</HTML>
Iamdemon88
2004-01-11
打赏
举报
回复
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script>
imageDir = "";
/** 文件节点的图片 */
img_file = imageDir+"file.gif";
/** 关闭的目录的图片 */
img_folder_close = imageDir+"close.gif";
/** 在中间的加号的图片 */
img_plus = imageDir+"plusnode.gif";
/** 在树末尾的加号的图片 */
img_plus_last = imageDir+"pluslastnode.gif";
/** 打开的目录的图片 */
img_folder_open = imageDir+"open.gif";
/** 在树末尾的减号的图片 */
img_minus_last = imageDir+"minuslastnode.gif";
/** 在中间的减号的图片 */
img_minus = imageDir+"minusnode.gif";
/** 无节点线条的图片 */
img_line = imageDir+"line.gif";
/** 最后节点的线条图片 */
img_line_last = imageDir+"lastnode.gif";
/** 中间节点的线条图片 */
img_line_mid = imageDir+"node.gif";
/** 空白区域的图片 */
img_blank = imageDir+"blank.gif";
function tree(){
/** 根节点 */
this.root = null;
/** 节点个数 */
this.length = 0;
/** 节点数组 */
this.nodes = new Array();
/** 在drawFrontLine时用来临时存储字符串 */
this.tempStr = "";
/** 添加根节点 */
this.addRoot = addRoot;
/** 添加节点 */
this.addNode = addNode;
/** 画出根节点 */
this.drawRoot = drawRoot;
/** 画出节点前的空白图片或连接线图片 */
this.drawFrontLine = drawFrontLine;
/** 画出节点 */
this.drawNode = drawNode;
/** 画出所有节点 */
this.drawNodes = drawNodes;
/** 得到节点的父节点 */
this.getParent = getParent;
/** 添加节点时,将同一层的其他节点的isLast属性设置为false */
this.setOtherIsLast = setOtherIsLast;
}
/**
* 根节点对象
* @param id 根节点的id号
* @param name 根节点名称,显示在页面的连接的名字
* @param url 链接
* @param target 指示链接的目标页面
*/
function root(id,name,url,target) {
this.id = id;
this.name = name;
this.parentId = null;
this.type = "root";
this.url = url;
this.target = target;
}
function addRoot(root) {
this.root = root;
this.length = 1;
this.nodes[0] = root;
}
/**
* 节点对象
* @param id 节点id号
* @param name 节点名称,显示在页面上的链接的名字
* @param parentId 父节点id号
* @param type 节点的类型(folder|file)
* @param url 节点的链接
* @param target 节点链接的目标页面
*/
function node(id,name,parentId,type,url,target) {
/** 节点id号 */
this.id = id;
/** 节点名称,显示在页面上的链接的名字 */
this.name =name;
/** 父节点id号 */
this.parentId = parentId;
/** 节点的类型(folder|file) */
this.type = type;
/** 节点的链接 */
this.url = url;
/** 节点链接的目标页面 */
this.target = target;
/** 节点的图片(目录或文件等) */
this.image = "";
/** 节点的前导图片(加号或减号或线条等) */
this.fImage = "";
/** 是否是同层中最后节点 */
this.isLast = false;
}
/** 判断一个节点是否有父节点,如果有则返回其父节点,如果没有返回null */
function getParent(node) {
for (var i=0;i<this.length;i++)
{
if (this.nodes[i].id == node.parentId)
{
return this.nodes[i];
}
}
return null;
}
/** 当添加一个新节点后,将与它处在同一层的其它元素的isLast标志设置为false */
function setOtherIsLast(node) {
for (var i=1;i<this.length;i++) //i=1,表示不包括根节点在内的循环
{
if (this.nodes[i].parentId == node.parentId && this.nodes[i].isLast) //如果找到父节点相同的,并且isLast为true的节点
{
this.nodes[i].isLast = false; //设置该节点的isLast为false
if (this.nodes[i].type == "folder") //设置图片为非末节点图片
{
this.nodes[i].fImage = img_plus;
} else {
this.nodes[i].fImage = img_line_mid;
}
return true;
}
}
return false;
}
/** 为树的节点组nodes[]添加一个新的节点 */
function addNode(node) {
if (this.getParent(node) != null) //如果有父节点
{
this.setOtherIsLast(node); //设置同层中的其他元素为非末节点
node.isLast = true; //设置本节点为末节点
if (node.type == "folder") //根据节点类型设置图片
{
node.image = img_folder_close;
node.fImage = img_plus_last;
} else {
node.image = img_file;
node.fImage = img_line_last;
}
this.nodes[this.length] = node; //添加该节点到树的节点组nodes[]
this.length++; //节点数加1
} else {
alert("没有找到该节点的父节点,这是一个非法节点!");
}
}
/** 画出根节点 */
function drawRoot() {
document.write("<table border='0' cellspacing='0' cellpadding='0'>");
document.write("<tr style='font-size:12px'><td>");
document.write("<a onFocus='this.blur()' href='"+this.root.url+"' target='"+this.root.target+"'><img border='0' src='"+img_folder_close+"'></a>");
document.write("</td><td valign='middle'>");
document.write("<a onFocus='this.blur()' href='"+this.root.url+"' target='"+this.root.target+"'>"+this.root.name+"</a>");
document.write("</td></tr>");
document.write("</table>");
}
Iamdemon88
2004-01-11
打赏
举报
回复
我没改你的函数
就只加一个节点
孟子E章
2004-01-11
打赏
举报
回复
得看你得全部代码
showModalDialog()、showModelessDialog()方法使用详解(net_
lover
)
孟子
E
章
" ) var mxh2 = window.open( " about:blank " , " window_mxh " ) // 向对话框传递数组 window.showModalDialog( " test2.htm " ,mxh1) // 向对话框传递window对象 window....
CSS样式丢失总结(转载)
转载自【
孟子
E
章
】:http://blog.csdn.net/net_
lover
/archive/2007/08/27/1760521.aspx经常有人遇到ASP.NET 2.0(ASP.NET 1.x中可能是有效的)中CSS失效的问题,现将主要原因和解决方法罗列如下:1.CSS文件路径不...
[转]Asp.net 2.0页面样式丢失总结
转载自【
孟子
E
章
】:http://blog.csdn.net/net_
lover
/archive/2007/08/27/1760521.aspx 经常有人遇到ASP.NET 2.0(ASP.NET 1.x中可能是有效的)中CSS失效的问题,现将主要原因和解决方法罗列如下:1.CSS文件路径不...
XML自动缩
进
输出
网上见的多的是
孟子
E
章
BLOG上的XSLT方法(他的blog宣传不错,名气大嘛)网址: http://blog.csdn.net/net_
lover
/archive/2004/07/27/53601.aspx文
章
: 利用xslt对xml
进
行缩
进
格式化处理 该方法可以解决问题,但是,...
XML缩
进
输出,最简单的方法
网上见的多的是
孟子
E
章
BLOG上的XSLT方法(他的blog宣传不错,名气大嘛) 网址: http://blog.csdn.net/net_
lover
/archive/2004/07/27/53601.aspx 文
章
: 利用xslt对xml
进
行缩
进
格式化处理 该方法可以解
JavaScript
87,904
社区成员
224,614
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章