\x05\x05\x05function init() {\x05\x05\x05\x05if ( document.getElementById || document.getElementsByTagName)\x05\x05\x05\x05{ retun;}\x05\x05\x05\x05var arrayDiv = document.getElementById("level");\x05\x05\x05\x05if ( arrayDiv)\x05\x05\x05\x05{ return

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 11:37:13

\x05\x05\x05function init() {\x05\x05\x05\x05if ( document.getElementById || document.getElementsByTagName)\x05\x05\x05\x05{ retun;}\x05\x05\x05\x05var arrayDiv = document.getElementById("level");\x05\x05\x05\x05if ( arrayDiv)\x05\x05\x05\x05{ return
\x05\x05\x05function init() {
\x05\x05\x05\x05if ( document.getElementById || document.getElementsByTagName)
\x05\x05\x05\x05{ retun;}
\x05\x05\x05\x05var arrayDiv = document.getElementById("level");
\x05\x05\x05\x05if ( arrayDiv)
\x05\x05\x05\x05{ return;}
\x05\x05\x05\x05var divObj = arrayDiv.getElementsByTagName("div");
\x05\x05\x05\x05var length = divObj.length;
\x05\x05\x05\x05var agreeDiv = new Array();
\x05\x05\x05\x05for ( var i=0; i=0) {
\x05\x05\x05\x05\x05\x05agreeDiv.push(divObj[i]);
\x05\x05\x05\x05\x05\x05divObj[i].onclick = function(event) {
\x05\x05\x05\x05\x05\x05\x05showCurrentMenu(agreeDiv,this,event);
\x05\x05\x05\x05\x05\x05}
\x05\x05\x05\x05\x05}
\x05\x05\x05\x05}
\x05\x05\x05}
\x05\x05\x05function showCurrentMenu(agreeDiv,currentObj,event) {
\x05\x05\x05\x05if(!event)
\x05\x05\x05\x05{event = window.event;}
\x05\x05\x05\x05var eventObj = event.srcElement?event.srcElement:event.target;
\x05\x05\x05\x05var length = agreeDiv.length;
\x05\x05\x05\x05for ( var i=0;i

\x05\x05\x05function init() {\x05\x05\x05\x05if ( document.getElementById || document.getElementsByTagName)\x05\x05\x05\x05{ retun;}\x05\x05\x05\x05var arrayDiv = document.getElementById("level");\x05\x05\x05\x05if ( arrayDiv)\x05\x05\x05\x05{ return
先说说init():
看看浏览器有没有实现getElementById和getElementsByTagName方法,如果没有,退出;
看看文档里有没有id为level的元素,如果没有,退出;
拿到#level元素下面的所有div元素,对其遍历;
遍历中,如果该div元素的class名里含有unit,就把它添加进一个队列agreeDiv,并且给它添加click事件的处理函数,一旦发生click,就调用showCurrentMenu,参数是该队列,该div元素,和click事件
再说说showCurrentMenu

如果click事件没有作为参数传过来,就去window.event里面取(这是IE和其他浏览器不一样的地方);
再去取事件源eventObj ,那个三元的表达式应该也是为了兼容多浏览器,其实感觉如此就不用传递参数currentObj过来了,有点重复;
对传递过来的数组元素遍历,如果事件源eventObj的父元素在数组中,或者如果eventObj的元素名是H5,就跳过本轮继续下轮循环,否则就把eventObj的class设为unit
如果eventObj是H5类型的元素{如果eventObj的父元素的class是unit,将其父元素的class名字设为“unit current”,否则将eventObj的父元素的class名设为“unit”}
定义完这两个函数后,就直接运行了init()