?? tree.js
字號:
// JavaScript Document
/******************************************************************************
*函數意義:
menu :生成樹代碼 ;
itemExists :判斷是否有childer;
chengstate :切換節點狀態(open/close);
objExists :驗證對象是否存在 ;
saveCookie :執行保存Cookie ;
getCookie :執行讀取Cookie ;
checkCookieExist :驗證Cookie是否存在 ;
deleteCookie :刪除Cookie ;
*作 者:于恩水
*聯系方式:
QQ: 46163020
msn: yuenshui@hotmail.com
Email: woaini4651@yahoo.com.cn
支持網站: www.yemaweb.com
如有問題,請與作者聯系?。。?*最后修改:2004年12月28日
*修改次數:1
*制作日期:2004年7月14日
*備 注:此程序為免費使用的代碼,可以由任何人用作任何合法的用途。
對于代碼所造成的任何損失,作者不負任何責任。
在使用過程中不能修改和刪除此注釋信息,否則將追究侵犯版權的法律責任。
如果侵犯版權將被以法律允許的最大限度的起訴。
********************************************** 一下為修改 版本修改信息
2004年12月28日
v2.0.3
非葉子節點的連接也有效,此設置如果需要可以直接覆蓋js文件;
增加層次線的雙擊事件,雙擊將會將該節點收縮,便于瀏覽大量數據
2004年12月09日
v2.0.1
修改記錄的節點有時出錯的bug
2004年10月15日
v2.0
更加個性化圖標功能;
改善添加菜單的操作步驟;
增加全部展開,全部折疊功能;
*******************************************************************************/
treedata = new Array();
path = "";
function treemenu(tree_path,tree_name,tree_ico,url,target)
{
path = tree_path;
name = tree_name;
ico = tree_ico;
if(url!="" && url!=null)
document.write("<div><img src='"+path+ico+"' align=top border=0><a style='font-size:15px;font-weight:bold' href='"+url+"' target='"+target+"'>"+name+"</a></div>");
else
document.write("<div style='font-size:15px;font-weight:bold'><img src='"+path+ico+"' align=top border=0>"+name+"</div>");
}//end function treemenu
// 0 id 1 父id 2 名稱 3 地址 4 關閉圖標 5 打開圖標 6 指向窗口
function add_item(tree_id,tree_prarent,tree_name,tree_close_ico,tree_open_ico,tree_url,tree_target)
{
if(tree_close_ico=="")
tree_close_ico="close.gif";
if(tree_open_ico=="")
tree_open_ico="open.gif";
// 0 id 1 父id 2 名稱 3 地址 4 關閉圖標 5 打開圖標 6 指向窗口
treedata[treedata.length] = new Array(tree_id,tree_prarent,tree_name,tree_url,tree_close_ico,tree_open_ico,tree_target);
}//end function add_item
function menu(id) //畫菜單
{
var currdata = new Array();
var i = 0;
var printstr = "<table border='0' cellspacing='0' cellpadding='0'>\n";
var listtype = "";
var menutype = "";
for(; i<treedata.length; i++)
{ //判斷有無此節點
if(treedata[i][1]==id) currdata[currdata.length] = treedata[i];
}//end for
for(var i=0; i<currdata.length; i++)
{ //遍歷數組,執行判斷
if(itemExists(currdata[i][0]))
{ //判斷是否有子節點
if(i==currdata.length-1)
{ // 最后一個
menutype = "menu3";
listtype = "list1";
}
else
{
menutype = "menu1";
listtype = "list";
}//end if
onmouseup = "chengstate('"+currdata[i][0]+"')";
}
else
{ //沒有子節點
if(i==currdata.length-1)
{ // 最后一個
menutype = "file1";
}
else
{
menutype = "file";
}//end if
onmouseup = "";
}//end if
if(currdata[i][3]!="" && currdata[i][3]!=null)
{
menuname = "<a href='"+currdata[i][3]+"' target='"+currdata[i][6]+"'>"+currdata[i][2]+"</a>";
}
else
{
menuname = currdata[i][2];
}//end if
ico = "<img src='"+path+currdata[i][4]+"' id='ico"+currdata[i][0]+"' align=middle border=0>";
printstr += "<tr><td id='pr"+currdata[i][0]+"' valign=middle class="+menutype+" onMouseUp="+onmouseup+">"+ico+"<span onMouseOver='over_str(this)' valign='bottom' onMouseOut='out_str(this)' class='item'> "+menuname+" </span> </td></tr>\n";
printstr += "<tr id='item"+currdata[i][0]+"' ondblclick='chengstatedbl(\""+currdata[i][0]+"\")' style='display:none'><td class="+listtype+">"+menu(currdata[i][0])+"</td></tr>\n";
}//end for
printstr += "</table>\n";
return printstr;
}//end function menu
function itemExists(id)
{
for(var i=0;i<treedata.length;i++)
{
if(treedata[i][1]==id)return true;
}//end for
return false;
}//end function itemExists
function closeAll()
{ // 所有節點全部折疊
var len = treedata.length;
for(var i=0; i<len; i++)
{ //遍歷數組,執行判斷
obj = eval("pr"+treedata[i][0]);
if(obj.className == "menu2" || obj.className == "menu4")
{ //判斷是否有子節點
chengstate(treedata[i][0]);
}//end if
}//end for
}//end function closeAll
function openAll()
{ // 所有節點全部展開
var len = treedata.length;
for(var i=0; i<len; i++)
{ //遍歷數組,執行判斷
obj = eval("pr"+treedata[i][0]);
if(obj.className == "menu1" || obj.className == "menu3")
{ //判斷是否有子節點
chengstate(treedata[i][0]);
}//end if
}//end for
}//end function openAll
function over_str(obj)
{
obj.style.background = "#EEEEEE";
obj.style.border = "1px solid #999999";
}//end function over
function out_str(obj)
{
obj.style.background = "";
obj.style.border = "1px solid #FFFFFF";
}//end function out
function chengstatedbl(id)
{
chengstate(id,true);
event.cancelBubble = true;
}//end function chengstatedbl
function chengstate(menuid,save)
{ //切換節點的開放/關閉
//alert("menuid:"+menuid+"save:"+save);
menuobj = eval("item"+menuid);
obj = eval("pr"+menuid);
ico = eval("ico"+menuid);
var len = treedata.length;
for(var i=0; i<len; i++)
{
if(treedata[i][0]==menuid)
{
break;
}//end if
}//end for
if(menuobj.style.display == '')
{
menuobj.style.display = 'none';
ico.src = path+treedata[i][4];
}else{
menuobj.style.display = '';
ico.src = path+treedata[i][5];
}//end if
switch (obj.className)
{
case "menu1":
obj.className = "menu2";
break;
case "menu2":
obj.className = "menu1";
break;
case "menu3":
obj.className = "menu4";
break;
case "menu4":
obj.className = "menu3";
break;
}//end switch
}//end funciton chengstaut
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -