自调用函数解决闭包问题
改写了一下循环部分,不用oLis[i].index=i,而是调用自执行函数并传入立即参数,即可解决闭包问题。
for(var i=0;i<lists.length;i++){ (function(index){ lists[index].onclick=function(){ for(var n=0;n<lists.length;n++){ lists[n].className=""; div[n].className="hide"; } lists[index].className="on"; div[index].className=""; } })(i); }
写出来共勉。大家有别的方法也可以写出来大家一起学习。