js文件的代码function Ob(o){
var o=document.getElementById(o)?document.getElementById(o):o;
return o;
}
//创建或者取得对象o,并隐藏该对象.
function Hd(o) {
Ob(o).style.display="none";
}
//创建或者取得对象o,并显示该对象.
function Sw(o) {
Ob(o).style.display="";
}
function ExCls(o,a,b,n){
var o=Ob(o);
for(i=0;i<n;i++) {o=o.parentNode;}
o.className=o.className==a?b:a;
}
function CNLTreeMenu(id,TagName0) {
this.id=id;
this.TagName0=TagName0==""?"li":TagName0;
this.AllNodes = Ob(this.id).getElementsByTagName(TagName0); //根据标签名称获取结点元素liebiao
this.InitCss = function (ClassName0,ClassName1,ClassName2,ImgUrl) {
this.ClassName0=ClassName0;
this.ClassName1=ClassName1;
this.ClassName2=ClassName2;
this.ImgUrl=ImgUrl || "img/s.gif";
this.ImgBlankA ="<img src=\""+this.ImgUrl+"\" class=\"s\" onclick=\"ExCls(this,'"+ClassName0+"','"+ClassName1+"',1);/>";
this.ImgBlankB ="<img src=\""+this.ImgUrl+"\" class=\"s\" />";
for (i=0;i<this.AllNodes.length;i++ ) {
this.AllNodes[i].className==""?this.AllNodes[i].className=ClassName1:"";
//初始化结点元素
this.AllNodes[i].innerHTML=(this.AllNodes[i].className==ClassName2?this.ImgBlankB:this.ImgBlankA)+this.AllNodes[i].innerHTML;
}
}
this.SetNodes = function (n) {
var sClsName=n==0?this.ClassName0:this.ClassName1;
for (i=0;i<this.AllNodes.length;i++ ) {
this.AllNodes[i].className==this.ClassName2?"":this.AllNodes[i].className=sClsName;
}
}
}html文件中的代码
<ul>
<li class="Closed">
<a href="#">热力设备检修精品课程</a>
<ul>
<li class="Closed"><a href="#">首页</a></li>
<li class="Closed"><a href="#">申报表</a></li>
<li class="Closed"><a href="#" onclick="">课程设置</a>
<ul>
<li class="Child"><a href="#">子节点1</a></li>
<li class="Child"><a href="#">子节点2</a></li>
<li class="Child"><a href="#">子节点3</a></li>
</ul>
</li>
</ul><script>
var MyCNLTreeMenu1=new CNLTreeMenu("CNLTreeMenu1","li");
MyCNLTreeMenu1.InitCss("Opened","Closed","Child","img/s.gif");
</script>
我主要不明白节点是怎么被控制的显示和隐藏的,它通过js加进去的图片被点击时怎么操纵的节点呢?
望各位大大悉心解说,越详细越好。
谢谢!在线等!
var o=document.getElementById(o)?document.getElementById(o):o;
return o;
}
//创建或者取得对象o,并隐藏该对象.
function Hd(o) {
Ob(o).style.display="none";
}
//创建或者取得对象o,并显示该对象.
function Sw(o) {
Ob(o).style.display="";
}
function ExCls(o,a,b,n){
var o=Ob(o);
for(i=0;i<n;i++) {o=o.parentNode;}
o.className=o.className==a?b:a;
}
function CNLTreeMenu(id,TagName0) {
this.id=id;
this.TagName0=TagName0==""?"li":TagName0;
this.AllNodes = Ob(this.id).getElementsByTagName(TagName0); //根据标签名称获取结点元素liebiao
this.InitCss = function (ClassName0,ClassName1,ClassName2,ImgUrl) {
this.ClassName0=ClassName0;
this.ClassName1=ClassName1;
this.ClassName2=ClassName2;
this.ImgUrl=ImgUrl || "img/s.gif";
this.ImgBlankA ="<img src=\""+this.ImgUrl+"\" class=\"s\" onclick=\"ExCls(this,'"+ClassName0+"','"+ClassName1+"',1);/>";
this.ImgBlankB ="<img src=\""+this.ImgUrl+"\" class=\"s\" />";
for (i=0;i<this.AllNodes.length;i++ ) {
this.AllNodes[i].className==""?this.AllNodes[i].className=ClassName1:"";
//初始化结点元素
this.AllNodes[i].innerHTML=(this.AllNodes[i].className==ClassName2?this.ImgBlankB:this.ImgBlankA)+this.AllNodes[i].innerHTML;
}
}
this.SetNodes = function (n) {
var sClsName=n==0?this.ClassName0:this.ClassName1;
for (i=0;i<this.AllNodes.length;i++ ) {
this.AllNodes[i].className==this.ClassName2?"":this.AllNodes[i].className=sClsName;
}
}
}html文件中的代码
<ul>
<li class="Closed">
<a href="#">热力设备检修精品课程</a>
<ul>
<li class="Closed"><a href="#">首页</a></li>
<li class="Closed"><a href="#">申报表</a></li>
<li class="Closed"><a href="#" onclick="">课程设置</a>
<ul>
<li class="Child"><a href="#">子节点1</a></li>
<li class="Child"><a href="#">子节点2</a></li>
<li class="Child"><a href="#">子节点3</a></li>
</ul>
</li>
</ul><script>
var MyCNLTreeMenu1=new CNLTreeMenu("CNLTreeMenu1","li");
MyCNLTreeMenu1.InitCss("Opened","Closed","Child","img/s.gif");
</script>
我主要不明白节点是怎么被控制的显示和隐藏的,它通过js加进去的图片被点击时怎么操纵的节点呢?
望各位大大悉心解说,越详细越好。
谢谢!在线等!
只是解释一下js代码
节点是怎么被控制的显示和隐藏的,它通过js加进去的图片被点击时怎么操纵的节点呢?