?? tree_level_1.js
字號:
}
}
}
/***/
/** 將父節(jié)點(diǎn)的img對應(yīng)Id加入數(shù)組
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) {
}
}
/** 將父節(jié)點(diǎn)的img對應(yīng)Id加入數(shù)組
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);
}
/** 畫出整個樹的節(jié)點(diǎn)組
modify by yancj 2004.1.5
for 畫第一個符合查詢條件的節(jié)點(diǎn)
*/
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){
// 畫出符合條件的第一個節(jié)點(diǎn)
this.drawFirstSearchNode(this.nodes[i]);
}else{
this.drawNode(this.nodes[i]); //畫出節(jié)點(diǎn)
}
this.drawNodes(this.nodes[i]); //遞歸畫出整個節(jié)點(diǎn)組的節(jié)點(diǎn)
}
}
if (node.type != "root")
{
strTree += "";
}
}
/** 畫出當(dāng)前節(jié)點(diǎn)的一級子節(jié)點(diǎn)組
* add by yancj 2004.1.9
* 使用div來插入一級子節(jié)點(diǎn)組的html代碼。div的id為當(dāng)前節(jié)點(diǎn)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){
// 畫出符合條件的第一個節(jié)點(diǎn);
this.drawFirstSearchNode(this.nodes[i]);
}else{
this.drawNodeLevel(this.nodes[i]); //畫出節(jié)點(diǎn)
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; // 畫根節(jié)點(diǎn)的html代碼
}
}
/** 畫出節(jié)點(diǎn)前的前導(dǎo)圖片,有空格或線條圖片.
如果其父節(jié)點(diǎn)是一個末節(jié)點(diǎn),那么該對應(yīng)列的前導(dǎo)圖片為空格圖片.
如果不是末節(jié)點(diǎn),應(yīng)該添加線條圖片.
這里進(jìn)行了遞歸運(yùn)算,但由于其圖片順序為反順序,所以設(shè)置一個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;
}
/** 當(dāng)點(diǎn)擊目錄節(jié)點(diǎn)的前導(dǎo)"加號|減號"圖片時,展開層或收縮層,并用相應(yīng)的圖片替代現(xiàn)有圖片,實(shí)現(xiàn)動態(tài)收縮動作 */
function clickOnFolder() {
var srcIndex = event.srcElement.sourceIndex;
var divElement = document.all[srcIndex+6]; //得到層對象
var imgElement = document.all[srcIndex+3]; //得到圖片對象
var fimgElement = document.all[srcIndex]; //得到前導(dǎo)圖片對象(即它本身)
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;
}
}
/**
* 展開一級子目錄方式: 當(dāng)點(diǎn)擊目錄節(jié)點(diǎn)的前導(dǎo)"加號|減號"圖片時,展開層或收縮層,并用相應(yīng)的圖片替代現(xiàn)有圖片,實(shí)現(xiàn)動態(tài)收縮動作
* 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]; //得到前導(dǎo)圖片對象(即它本身)
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) {
// 添加相應(yīng)子目錄html代碼
tree.drawNodesLevel(new node(nid, nname, nparentId,ntype, norgname, ncode));
var dId="d"+nid;
document.getElementById(dId).innerHTML=strTree;
// 打開一級目錄
openFolder(srcIndex);
}
/** 畫出符合目錄查詢的第一個節(jié)點(diǎn)
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>";
// 對所有符合查詢條件的節(jié)點(diǎn)
for(i = 0; i < ids.length; i++) {
if (ids[i] == node.id) {
// 將該節(jié)點(diǎn)img對應(yīng)的Id寫到數(shù)組里去,當(dāng)頁面節(jié)點(diǎn)樹建立后,對所有符合條件的節(jié)點(diǎn)展開
srcids[idx++] = fIDid;
// 展開符合條件的節(jié)點(diǎn)的父節(jié)點(diǎn)
/// 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]; //得到前導(dǎo)圖片對象(即它本身)
// 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++) {
// 增加符合條件的節(jié)點(diǎn)的父節(jié)點(diǎn)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;
}
}
/*
初始化子節(jié)點(diǎn)liuhr
*/
function addChildId(nodeId){
tree.childrens = new Array();
chN=0;
//alert(tree.childrens);
//alert(nodeId);
tree.getChildId(nodeId);
return tree.childrens;
}
/*
點(diǎn)擊folder,選擇它的子節(jié)點(diǎn)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
//-->
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -