📄 tree_level_1.js
字号:
}
}
}
/***/
/** 将父节点的img对应Id加入数组
add by yancj 2004-1-5
*/
function addParentID(node) {
try {
// alert("childID: "+node.id);
var pNode = tree.getParent(node);
// alert("parentID: "+pNode.id);
if (pNode != null) {
var aTag = findATag(document.getElementById(pNode.id).firstChild);
srcids[idx++] = aTag.firstChild.id;
// 递归
addParentID(pNode);
}
}
catch (E) {
}
}
/** 将父节点的img对应Id加入数组
add by yancj 2004-2-10
*/
function addParentIDById(nodeId) {
try {
// alert("childID: "+nodeId);
var pId = tree.getParentId(nodeId);
//alert("parentID: "+pId);
if (pId != null) {
var aTag = findATag(document.getElementById(pId).firstChild);
srcids[idx++] = aTag.firstChild.id;
// 递归
addParentIDById(pId);
}
}
catch (E) {
}
}
/* 找出<a 后包含的img
add by yancj 2004-1-5
*/
function findATag(docNode) {
// alert("aTag? " + docNode.nodeName);
if (docNode.nodeName == 'A')
return docNode;
else
return findATag(docNode.nextSibling);
}
/** 画出整个树的节点组
modify by yancj 2004.1.5
for 画第一个符合查询条件的节点
*/
function drawNodes(node) {
if (node.type != "root")
{
strTree += "";
}
for (var i=1;i<this.length;i++)
{
if (this.nodes[i].parentId!=null && this.nodes[i].parentId == node.id)
{
if(this.nodes[i].id==this.firstSearchNodeId){
// 画出符合条件的第一个节点
this.drawFirstSearchNode(this.nodes[i]);
}else{
this.drawNode(this.nodes[i]); //画出节点
}
this.drawNodes(this.nodes[i]); //递归画出整个节点组的节点
}
}
if (node.type != "root")
{
strTree += "";
}
}
/** 画出当前节点的一级子节点组
* add by yancj 2004.1.9
* 使用div来插入一级子节点组的html代码。div的id为当前节点id,加前缀d
*/
function drawNodesLevel(node) {
strTree="";
// alert(" drawNodesLevel ");
for (var i=1;i<this.length;i++)
{
if (this.nodes[i].parentId!=null && this.nodes[i].parentId == node.id)
{
if(this.nodes[i].id==this.firstSearchNodeId){
// 画出符合条件的第一个节点;
this.drawFirstSearchNode(this.nodes[i]);
}else{
this.drawNodeLevel(this.nodes[i]); //画出节点
if (this.nodes[i].type == "folder")
{
strTree += "<div style='display:none' id='d" + this.nodes[i].id + "'>";
strTree += "</div>";
}
}
}
}
if (node.type == "root")
{
strTree = rStrTree + strTree; // 画根节点的html代码
}
}
/** 画出节点前的前导图片,有空格或线条图片.
如果其父节点是一个末节点,那么该对应列的前导图片为空格图片.
如果不是末节点,应该添加线条图片.
这里进行了递归运算,但由于其图片顺序为反顺序,所以设置一个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]);
}
}
strTree += tempStr;
}
/** 当点击目录节点的前导"加号|减号"图片时,展开层或收缩层,并用相应的图片替代现有图片,实现动态收缩动作 */
function clickOnFolder() {
var srcIndex = event.srcElement.sourceIndex;
var divElement = document.all[srcIndex+6]; //得到层对象
var imgElement = document.all[srcIndex+3]; //得到图片对象
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;
}
}
}
/**
* 展开一级子目录方式: 当点击目录节点的前导"加号|减号"图片时,展开层或收缩层,并用相应的图片替代现有图片,实现动态收缩动作
* add by yancj 2004.4.9
*/
function clickOnFolderLevel(nid, nname, nparentId, ntype, norgname, ncode) {
tree.drawNodesLevel(new node(nid, nname, nparentId,ntype, norgname, ncode));
var dId="d"+nid;
document.getElementById(dId).innerHTML=strTree;
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;
}
}
}
function clickOnFolderLevelInf(nid, nname, nparentId, ntype, norgname, ncode, srcIndex) {
// 添加相应子目录html代码
tree.drawNodesLevel(new node(nid, nname, nparentId,ntype, norgname, ncode));
var dId="d"+nid;
document.getElementById(dId).innerHTML=strTree;
// 打开一级目录
openFolder(srcIndex);
}
/** 画出符合目录查询的第一个节点
add by yancj 2004-1-5
*/
function drawFirstSearchNode(node) {
strTree += "<table border='0' cellspacing='0' cellpadding='0'>";
strTree += "<tr ><td id='" + node.id + "'>";
var fIDid = fID++;
this.drawFrontLine(node);
if (node.type == "folder")
{
strTree += "<a onClick='clickOnFolder()' onFocus='this.blur()' href='#'><img id='" + (fIDid) + "' border='0' src='"+node.fImage+"'></a>";
strTree += "<a onFocus='this.blur()' href='#'><img border='0' src='"+node.image+"'></a>";
strTree += "</td><td valign='middle'>";
strTree += "<a onFocus='this.blur()' class='a05' id='folderLink' href='"+node.orgname+"' target='"+node.code+"' >"+node.name+"</a>";
} else {
strTree += "<img id='" + (fIDid) + "' border='0' src='"+node.fImage+"'>";
strTree += "<a onFocus='this.blur()' href='"+node.orgname+"' target='"+node.code+"')><img border='0' src='"+node.image+"'></a>";
strTree += "</td><td valign='middle'>";
strTree += "<a onFocus='this.blur()' class='a05' href='"+node.orgname+"' target='"+node.code+"') >"+node.name+"</a>";
}
strTree += "</td></tr>";
strTree += "</table>";
// 对所有符合查询条件的节点
for(i = 0; i < ids.length; i++) {
if (ids[i] == node.id) {
// 将该节点img对应的Id写到数组里去,当页面节点树建立后,对所有符合条件的节点展开
srcids[idx++] = fIDid;
// 展开符合条件的节点的父节点
/// addParentID(node);
}
}
}
/* 用于目录查询时,自动展开符合条件的目录
add by yancj 2004-1-5
*/
function openFolder(srcIndex) {
var divElement = document.all[srcIndex+6]; //得到层对象
var imgElement = document.all[srcIndex+3]; //得到图片对象
var fimgElement = document.all[srcIndex]; //得到前导图片对象(即它本身)
// alert( " the image src: "+ imgElement.src);
// var theFileImg="http://localhost:8080"+img_file;
// alert( " the image path: "+ theFileImg);
// if (imgElement.src == theFileImg){
// alert(" not open");
// }else{
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;
}
// }
}
/* 用于目录查询时,自动展开符合条件的目录(返回整个字符串方式)
add by yancj 2004-2-10
*/
function searchFolder() {
for(i = 0; i < ids.length; i++) {
// 增加符合条件的节点的父节点Id(递归)
addParentIDById(ids[i]);
}
for (i = 0; i < srcids.length; i++) {
try {
openFolder(document.getElementById(srcids[i]).sourceIndex);
}
catch(e) {}
}
}
/*
选择file;liuhr
*/
function selectFile()
{
var checkObj = event.srcElement;
if(checkObj.checked){
checkObj.checked = checkObj.checked;
}
}
/*
初始化子节点liuhr
*/
function addChildId(nodeId){
tree.childrens = new Array();
chN=0;
//alert(tree.childrens);
//alert(nodeId);
tree.getChildId(nodeId);
return tree.childrens;
}
/*
点击folder,选择它的子节点liuhr
*/
function selectall()
{
var checkObj = event.srcElement;
var Cid = event.srcElement.id;
tree.addChildId(Cid);
var length = tree.childrens.length;
//alert(tree.childrens);
if (length == 0 ){
return;
}
if (length>0)
{
for (var i = 0; i < length; i++){
document.getElementById(tree.childrens[i]).checked = checkObj.checked;
}
}
}
<!--
/**
* Based on Folding Menu Tree
* Dynamic Drive (www.dynamicdrive.com)
* For full source code, installation instructions,
* 100's more DHTML scripts, and Terms Of
* Use, visit dynamicdrive.com
*
* Updated to support arbitrarily nested lists
* by Mark Quinn (mark@robocast.com) November 2nd 1998
*/
var head="display:''"
img1=new Image()
img1.src="images/fold.gif"
img2=new Image()
img2.src="images/open.gif"
function change(){
if(!document.all)
return
if (event.srcElement.id=="foldheader") {
var srcIndex = event.srcElement.sourceIndex
var nested = document.all[srcIndex+2]
if (nested.style.display=="none") {
nested.style.display=''
//event.srcElement.style.listStyleImage="url(open.gif)"
event.srcElement.src="images/left_folderopen.gif"
}
else {
nested.style.display="none"
//event.srcElement.style.listStyleImage="url(fold.gif)"
event.srcElement.src="images/left_folder.gif"
}
}
}
function changeTwins(){
var foldnode = event.srcElement.previousSibling.previousSibling
if (foldnode.id == "foldheader") {
var srcIndex = foldnode.sourceIndex
var nested = document.all[srcIndex+2]
if (nested.style.display=="none") {
nested.style.display=''
//event.srcElement.style.listStyleImage="url(open.gif)"
foldnode.src="images/left_folderopen.gif"
}
else {
nested.style.display="none"
//event.srcElement.style.listStyleImage="url(fold.gif)"
foldnode.src="images/left_folder.gif"
}
}
}
document.onclick=change
//-->
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -