这个应该粗橘是控制一个子菜单显示和隐藏的代码
sitemap通过ID获取到含有很多ul li的一个容器
if(sitemap) 判断如果这个存在,就执行里面的代码块
this.listItem 是一个函数,他接收一个参数(li) 其中的li是一个dom对象
var items = sitemap.getElementsByTagName("li");这句话获取到sitemap变量里所有的li对象,
通过遍历执行listItem(li)这个方法
再说listItem(li)方法
如果传入的参数li对象有ul对象,说明他还有子菜单,这时候他就会展开子菜单
展开的同凳凳州时创建了一个dom对象span,然枣蔽后加入了一些class,
span.onclick 同时绑定了一些时间
这里面的this对象指的的Window对象
this.sitemapstyler = function(){ //创建一个方法
var sitemap = document.getElementById("sitemap") //找到id为sitemap的元素
if(sitemap){
this.listItem = function(li){ //创建另一个方法,该方法有个带源参数li
if(li.getElementsByTagName("ul").length > 0){ //如果li中有名字叫ul的元素
var ul = li.getElementsByTagName("ul")[0]; //找到li中第一个名字叫ul的元素
ul.style.display = "扰好block"; //设置li中第一个名字叫ul的元素隐藏
var span = document.createElement("span"); //创建一个span元素(span标签)
span.className = "collapsed"; //为span元素添加一个样式,名叫collapsed
span.onclick = function(){ //为span元素绑定一个点击事件
ul.style.display = (ul.style.display == "none") ? "block" : "none"; //如果li中第一个名字叫ul的元素是隐藏就设置为显示,反正隐藏
this.className = (ul.style.display == "none") ? "collapsed" : "expanded";
//如果li中第一个名字叫ul的元素是隐藏就设置span的样式为collapsed,反正expanded
};
li.appendChild(span); //向li中添加span元素,这时span才会显示在页面上
};
};
var items = sitemap.getElementsByTagName("li");
for(var i=0;i
};
};
};
window.onload = sitemapstyler; //页面加载时执蠢李态行sitemapstyler方法