javascript+dom樹(shù)型菜單類(lèi),希望朋友們一起進(jìn)步
更新時(shí)間:2007年05月03日 00:00:00 作者:
樹(shù)菜單js網(wǎng)上多得是,自己寫(xiě)了一個(gè)樹(shù)菜單類(lèi),自認(rèn)為還不錯(cuò),公開(kāi)大家共享和探討,和大家一起進(jìn)步最快樂(lè)!!
/* KuoMart.com__MyKuoMart , Create By ybcola(at)163.com , 2006-7-2
Last Modified 2006-7-2 , ybcola@163.com */
<!--
function Dtree(){
this.MenuGroupClose="images/treeview_close.gif"; //菜單關(guān)閉圖標(biāo)
this.MenuGroupOpen="images/treeview_open.gif"; //菜單打開(kāi)圖標(biāo)
this.MenuItemClass=""; //菜單項(xiàng)樣式
this.MenuItemInfoClass=""; //菜單鏈接樣式
this.MenuItemlPad="12px";//下級(jí)菜單縮進(jìn)仁值
this.DefaultGroupState=false; //菜單組裝入時(shí)默認(rèn)狀態(tài)
document.write("<div id=\"treeroot\"></div>");
this.Node=document.getElementById("treeroot");
//0結(jié)點(diǎn)DOM對(duì)像,數(shù)組1為連接顯示,2為連接href,3為連接target,4為連接顯示前圖標(biāo)
this.AddItem=function(menuinfo){
var div=creatediv();
var div1=creatediv();
var ico=[this.MenuGroupClose,this.MenuGroupOpen];
div.className=this.MenuItemClass;
div1.style.marginLeft=this.MenuItemlPad;
div1.style.display=this.DefaultGroupState?"":"none";
var Node=menuinfo[0]?menuinfo[0][1]:this.Node;
var iteminfo="";
if(menuinfo[4]) iteminfo="<img src=\""+menuinfo[4]+"\" align=\"absmiddle\">";
if(menuinfo[2]) iteminfo+=" <a href=\""+menuinfo[2]+"\" target=\""+menuinfo[3]+"\" class=\""+this.MenuItemInfoClass+"\">";
iteminfo+=menuinfo[1];
if(menuinfo[2])iteminfo+="</a>";
div.innerHTML=iteminfo;
Node.appendChild(div);
Node.appendChild(div1);
if(menuinfo[0]){
if(!menuinfo[0][0].havechild) {
var as=document.createElement("img");
as.src=ico[1];
as.align="absmiddle";
as.onclick=function(){
swapshow(Node,as,ico);
}
menuinfo[0][0].insertBefore(as,menuinfo[0][0].firstChild);
as.insertAdjacentText("afterEnd"," ");
menuinfo[0][0].havechild=true;
}
}
return [div,div1];
}
function creatediv(){
var div=document.createElement("div");
return div;
}
function swapshow(obj,ico,oo){
if(obj.style.display!=""){
obj.style.display="";
ico.src=oo[0];
}
else{
obj.style.display="none";
ico.src=oo[1];
}
}
}
-->
/* KuoMart.com__MyKuoMart , Create By ybcola(at)163.com , 2006-7-2
Last Modified 2006-7-2 , ybcola@163.com */
<!--
function Dtree(){
this.MenuGroupClose="images/treeview_close.gif"; //菜單關(guān)閉圖標(biāo)
this.MenuGroupOpen="images/treeview_open.gif"; //菜單打開(kāi)圖標(biāo)
this.MenuItemClass=""; //菜單項(xiàng)樣式
this.MenuItemInfoClass=""; //菜單鏈接樣式
this.MenuItemlPad="12px";//下級(jí)菜單縮進(jìn)仁值
this.DefaultGroupState=false; //菜單組裝入時(shí)默認(rèn)狀態(tài)
document.write("<div id=\"treeroot\"></div>");
this.Node=document.getElementById("treeroot");
//0結(jié)點(diǎn)DOM對(duì)像,數(shù)組1為連接顯示,2為連接href,3為連接target,4為連接顯示前圖標(biāo)
this.AddItem=function(menuinfo){
var div=creatediv();
var div1=creatediv();
var ico=[this.MenuGroupClose,this.MenuGroupOpen];
div.className=this.MenuItemClass;
div1.style.marginLeft=this.MenuItemlPad;
div1.style.display=this.DefaultGroupState?"":"none";
var Node=menuinfo[0]?menuinfo[0][1]:this.Node;
var iteminfo="";
if(menuinfo[4]) iteminfo="<img src=\""+menuinfo[4]+"\" align=\"absmiddle\">";
if(menuinfo[2]) iteminfo+=" <a href=\""+menuinfo[2]+"\" target=\""+menuinfo[3]+"\" class=\""+this.MenuItemInfoClass+"\">";
iteminfo+=menuinfo[1];
if(menuinfo[2])iteminfo+="</a>";
div.innerHTML=iteminfo;
Node.appendChild(div);
Node.appendChild(div1);
if(menuinfo[0]){
if(!menuinfo[0][0].havechild) {
var as=document.createElement("img");
as.src=ico[1];
as.align="absmiddle";
as.onclick=function(){
swapshow(Node,as,ico);
}
menuinfo[0][0].insertBefore(as,menuinfo[0][0].firstChild);
as.insertAdjacentText("afterEnd"," ");
menuinfo[0][0].havechild=true;
}
}
return [div,div1];
}
function creatediv(){
var div=document.createElement("div");
return div;
}
function swapshow(obj,ico,oo){
if(obj.style.display!=""){
obj.style.display="";
ico.src=oo[0];
}
else{
obj.style.display="none";
ico.src=oo[1];
}
}
}
-->
相關(guān)文章
javascript實(shí)現(xiàn)驗(yàn)證身份證號(hào)的有效性并提示
下面分享的JS腳本是我用過(guò)的最完善的身份證號(hào)的驗(yàn)證程序了,因?yàn)橹挥姓嬲纳矸葑C號(hào)才能被通過(guò),小伙伴們可以試試。直接復(fù)制運(yùn)行。2015-04-04
新手快速入門(mén)JavaScript裝飾者模式與AOP
這篇文章主要介紹了新手快速入門(mén)JavaScript裝飾者模式與AOP,在不改變對(duì)象)的情況下動(dòng)態(tài)的為其添加功能,這就是裝飾者模式,下面小編帶大家來(lái)深入學(xué)習(xí)一下吧2019-06-06
javaScript中Math()函數(shù)注意事項(xiàng)
本文主要給大家分享了javascript中Math()函數(shù)的注意事項(xiàng),以及math對(duì)象的方法,十分的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下2015-06-06
用js判斷頁(yè)面刷新或關(guān)閉的方法(onbeforeunload與onunload事件)
Onunload,onbeforeunload都是在刷新或關(guān)閉時(shí)調(diào)用,可以在<script>腳本中通過(guò)window.onunload來(lái)指定或者在<body>里指定2012-06-06
JavaScript性能優(yōu)化技術(shù)深入研究
這篇文章主要介紹了JavaScript性能優(yōu)化技術(shù),優(yōu)化涉及多個(gè)方面,包括代碼執(zhí)行效率、內(nèi)存使用、DOM操作、網(wǎng)絡(luò)請(qǐng)求等,通過(guò)合理的優(yōu)化策略,可以顯著提升應(yīng)用的響應(yīng)速度和用戶(hù)體驗(yàn),掌握這些技術(shù)對(duì)于構(gòu)建高性能的JavaScript應(yīng)用至關(guān)重要,需要的朋友可以參考下2025-02-02
JS實(shí)現(xiàn)json對(duì)象數(shù)組按對(duì)象屬性排序操作示例
這篇文章主要介紹了JS實(shí)現(xiàn)json對(duì)象數(shù)組按對(duì)象屬性排序操作,涉及javascript使用sort方法針對(duì)json數(shù)組的遍歷與排序相關(guān)操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-05-05

