这个代码什么意思,详细的讲解一下,谢谢了

2025-02-23 05:13:45
推荐回答(1个)
回答1:

先说说init():

  1. 看看浏览器有没有实现getElementById和getElementsByTagName方法,如果没有,退出;

  2. 看看文档里有没有id为level的元素,如果没有,退出;

  3. 拿到#level元素下面的所有div元素,对其遍历;

  4. 遍历中,如果该div元素的class名里含有unit,就把它添加进一个队列agreeDiv,并且给它添加click事件的处理函数,一旦发生click,就调用showCurrentMenu,参数是该队列,该div元素,和click事件

再说说showCurrentMenu

  1. 如果click事件没有作为参数传过来,就去window.event里面取(这是IE和其他浏览器不一样的地方);

  2. 再去取事件源eventObj ,那个三元的表达式应该也是为了兼容多浏览器,其实感觉如此就不用传递参数currentObj过来了,有点重复;

  3. 对传递过来的数组元素遍历,如果事件源eventObj的父元素在数组中,或者如果eventObj的元素名是H5,就跳过本轮继续下轮循环,否则就把eventObj的class设为unit

  4. 如果eventObj是H5类型的元素{如果eventObj的父元素的class是unit,将其父元素的class名字设为“unit current”,否则将eventObj的父元素的class名设为“unit”}

定义完这两个函数后,就直接运行了init()