📄 jscript.js.bak
字号:
if(p[i].id==e.id) {e = p[i+1]; break;}
}
}
}
}
};
//折叠树的所有节点
MzTreeView.prototype.collapseAll = function()
{
if(this.node["0"].childNodes.length==0) return;
var e = this.node["0"].childNodes[0];
var isdo = t = false;
while(e.id != "0")
{
var p = this.node[e.parentId].childNodes, pn = p.length;
if(p[pn-1].id==e.id && (isdo || !e.hasChild)){e=this.node[e.parentId]; isdo = true;}
else
{
if(e.hasChild && !isdo)
{
this.collapse(e.id), t = false;
for(var i=0; i<e.childNodes.length; i++)
{
if(e.childNodes[i].hasChild){e = e.childNodes[i]; t = true; break;}
}
if(!t) isdo = true;
}
else
{
isdo = false;
for(var i=0; i<pn; i++)
{
if(p[i].id==e.id) {e = p[i+1]; break;}
}
}
}
}
};
//判断当前节点是否展开着
MzTreeView.prototype.isNodeExpand = function(node)
{
if (!node.hasChild) return true;
var childNodesSpan = this.getChildNodeSpan(node);
if (childNodesSpan){
return childNodesSpan.style.display == "block";
}
return false;
}
//获取当前节点在其父节点中的位置索引
MzTreeView.prototype.indexOf = function(parentNode, node)
{
if(parentNode.childNodes == null) return -1;
for(var i = 0; i < parentNode.childNodes.length; i++)
{
if(parentNode.childNodes[i].id == node.id)
{
return i;
}
}
return -1;
}
//判断当前节点是否是根结点中的最后一个节点
MzTreeView.prototype.isLastNode = function(node)
{
if(node.parentNode.childNodes == null) return false;
var index = this.indexOf(node.parentNode,node);
if(index == -1) return false;
return index == node.parentNode.childNodes.length - 1;
}
//获取当前节点子节点的个数,不管当前节点是否已经展开
MzTreeView.prototype.getChildNodeCount = function(parentNode)
{
var d = this.divider, _d = this._d;
var sid = parentNode.sourceIndex.substr(parentNode.sourceIndex.indexOf(d) + d.length);
var reg = new RegExp("(^|"+_d+")"+ sid +d+"[^"+_d+d +"]+("+_d+"|$)", "g");
var cns = this.names.match(reg);
if (cns){
return cns.length;
}
return 0;
};
//该函数用于更新某个节点的图标以及展开或折叠的图标
MzTreeView.prototype.updateNodeIconAndExpand = function(node, HCN, AtEnd)
{
if(node == null) return;
if(node.parentId == "0") return;
node.icon = HCN ? "folder" : "file";
node.iconExpand = HCN ? AtEnd ? "PM2" : "PM1" : AtEnd ? "L2" : "L1";
var icon = this.icons[node.icon];
var iconE = this.iconsExpand[node.icon];
var img = this.getElementById(this.name +"_icon_"+ node.id);
if (img) img.src = typeof(iconE)=="undefined" ? icon.src : iconE.src;
var exp = this.icons[node.iconExpand];
var expE = this.iconsExpand[node.iconExpand];
var expand= this.getElementById(this.name +"_expand_"+ node.id);
if (expand)
{
expand.src = typeof(expE) =="undefined" ? exp.src : expE.src;
}
};
//该函数用于更新某个父节点下的所有子节点的childAppend,该函数在添加删除节点时被调用
MzTreeView.prototype.updateChildNodesChildAppend = function(parentNode, childAppendIndex, childAppend, icon)
{
if(parentNode == null) return;
if(childAppendIndex < 0) return;
if(typeof(parentNode.childNodes) == "undefined") return;
for(var i = 0; i < parentNode.childNodes.length; i++)
{
var str = parentNode.childNodes[i].childAppend;
parentNode.childNodes[i].childAppend = str.substring(0,childAppendIndex) + childAppend + str.substring(childAppendIndex+1);
var childAppendSpan = this.getChildAppendSpan(parentNode.childNodes[i]);
var img = childAppendSpan.childNodes[childAppendIndex];
img.src=this.icons[icon].src;
this.updateChildNodesChildAppend(parentNode.childNodes[i],childAppendIndex,childAppend,icon);
}
}
//新增一个叶子节点,注:添加该叶子节点时必须确保其父节点是展开的
MzTreeView.prototype.addNode = function(parentNode, newNodeValue)
{
if(parentNode == null) return;
if(parentNode.hasChild && !this.isNodeExpand(parentNode)) return;
var parentNodeId = parentNode.id;
var newNodeId = this.generateGUID();
this.nodes[parentNodeId + '_' + newNodeId] = newNodeValue;
this.dataFormat();
this.nodeInit(newNodeId,parentNodeId);
var childNode = this.node[newNodeId];
var parentNode = this.node[parentNodeId];
var newChildNodeHtml = this.nodeToHTML(childNode,true);
if(typeof(parentNode.childNodes) == "undefined" || parentNode.childNodes.length == 0)
{
parentNode.childNodes = [];
parentNode.hasChild = true;
parentNode.isLoad = true;
}
if(parentNode.childNodes.length > 0)
{
var previousNode = parentNode.childNodes[parentNode.childNodes.length-1];
this.updateNodeIconAndExpand(previousNode,previousNode.hasChild,false);
previousNode.childAppend = previousNode.childAppend.substring(0,previousNode.childAppend.length-1) + "│";
if(previousNode.childNodes)
{
if(parentNode.parentId != "0")
this.updateChildNodesChildAppend(previousNode,this.getChildAppendSpan(parentNode).childNodes.length,"│", "L4");
else
this.updateChildNodesChildAppend(previousNode,0,"│", "L4");
}
}
this.updateNodeIconAndExpand(parentNode,true,this.isLastNode(parentNode));
parentNode.childNodes[parentNode.childNodes.length] = childNode;
var childNodesHTML = "";
for(var i = 0; i < parentNode.childNodes.length - 1; i++)
childNodesHTML += this.getNodeHTML(parentNode.childNodes[i].id);
childNodesHTML += newChildNodeHtml;
this.getChildNodeSpan(parentNode).innerHTML = childNodesHTML;
this.getChildNodeSpan(parentNode).style.display = "block";
};
//删除一个叶子节点,注:删除该叶子节点时必须确保其父节点是展开的
//另外,根节点不能删除
MzTreeView.prototype.removeLeafNode = function(node)
{
if(node == null) return;
if(this.getChildNodeCount(node) > 0)
{
alert('当前节点有子节点,不能删除!');
return;
}
if(node.parentId == "0")
{
alert('根节点不能删除');
return;
}
if(node.parentNode.hasChild && !this.isNodeExpand(node.parentNode)) return;
var d = this.divider, _d = this._d
var reg = new RegExp("(^|"+ _d +")([^"+d+"]+"+d+node.id+")", "g");
var a = this.names.match(reg);
if(a == null) return;
this.names = this.names.replace(a[0],"");
this.nodes[node.parentId + "_" + node.id] = null;
if(node.parentNode.isLoad)
{
var str = "";
var childNodes = [];
var j = 0;
for(var i = 0; i < node.parentNode.childNodes.length; i++)
{
if(node.parentNode.childNodes[i].id != node.id)
{
str += this.getNodeHTML(node.parentNode.childNodes[i].id);
childNodes[j] = node.parentNode.childNodes[i];
j++;
}
}
node.parentNode.childNodes = childNodes;
this.getChildNodeSpan(node.parentNode).innerHTML = str;
if(node.parentNode.childNodes.length == 0)
{
this.updateNodeIconAndExpand(node.parentNode,false,this.isLastNode(node.parentNode));
node.parentNode.hasChild = false;
this.getChildNodeSpan(node.parentNode).style.display = "none";
}
else
{
var previousNode = node.parentNode.childNodes[node.parentNode.childNodes.length-1];
if(this.isNodeExpand(previousNode))
this.updateNodeIconAndExpand(previousNode,previousNode.hasChild,true);
else
{
previousNode.iconExpand = "PM2";
var exp = this.icons[previousNode.iconExpand];
var expand= this.getElementById(this.name +"_expand_"+ previousNode.id);
if (expand)
{
expand.src = exp.src;
}
}
previousNode.childAppend = previousNode.childAppend.substring(0,previousNode.childAppend.length-1) + " ";
if(previousNode.childNodes)
{
if(node.parentNode.parentId != "0")
this.updateChildNodesChildAppend(previousNode,this.getChildAppendSpan(node.parentNode).childNodes.length," ", "empty");
else
this.updateChildNodesChildAppend(previousNode,0," ", "empty");
}
}
}
}
//更新一个节点的文本
MzTreeView.prototype.updateNodeText = function(node, newText)
{
if(node == null) return;
if(node.parentNode == null) return;
this.nodes[node.parentNode.id + '_' + node.id] = this.nodes[node.parentNode.id + '_' + node.id].replace(node.text,newText);
this.dataFormat();
node.text = newText;
this.getElementById(this.name +"_link_"+ node.id).innerHTML = node.text;
};
//本树将要用动的图片的字义及预载函数
//path 图片存放的路径名
MzTreeView.prototype.setIconPath = function(path)
{
for(var i in this.icons)
{
var tmp = this.icons[i];
this.icons[i] = new Image();
this.icons[i].src = path + tmp;
}
for(var i in this.iconsExpand)
{
var tmp = this.iconsExpand[i];
this.iconsExpand[i]=new Image();
this.iconsExpand[i].src = path + tmp;
}
};
//设置树的默认链接
//url 默认链接 若不设置, 其初始值为 #
MzTreeView.prototype.setURL = function(url){this.url = url;};
//设置树的默认的目标框架名 target
//target 目标框架名 若不设置, 其初始值为 _self
MzTreeView.prototype.setTarget = function(target){this.target = target;};
MzTreeView.prototype.setIconFileSrc = function(imgpath)
{
this.icons["file"] = new Image();
this.icons["file"].src = imgpath ;
};
MzTreeView.prototype.setIconFolderSrc = function(imgpath)
{
this.icons["folder"] = new Image();
this.icons["folder"].src = imgpath ;
};
MzTreeView.prototype.setIconExpandFolderSrc = function(imgpath)
{
// i - 4 节点文件夹图片在展开时的对应文件夹图片
this.iconsExpand["folder"]=new Image();
this.iconsExpand["folder"].src = imgpath;
};
// -->
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -