问题描述
functionaaa(){vartmp=document.getElementsByTagName("img");for(i=0;i<tmp.length;i++){tmp[i].attachEvent("onmouseover",function(){bbb(i)});//bbb(i)中的i怎么才能与外部的i同步}}
解决方案
解决方案二:
现在不就是同步的吗?你啥意思?
解决方案三:
bbb(i)中的i不能引用for语句中的i呀...我想要的效果是attachEvent("onmouseover",function(){bbb(i)})中的i从0变到tmp.length。但事实上,我测试过了,bbb(i)中的i是未被赋值的,除非写成function(){i=0;bbb(i)},可这样的话bbb(i)中的i永远都只能等于0,这并不是我想要的效果!
解决方案四:
你在for外部定义i,在for里在那么写。试试可不可以
解决方案五:
用一个变量来接收i
解决方案六:
引用3楼renyingxinjing的回复:
你在for外部定义i,在for里在那么写。试试可不可以
引用4楼tanpingpingiloveyou的回复:
用一个变量来接收i
1.你们是同一个意思。虽然有点效果,不过还是不行!!!2.我把这一部分改成如下:varj=0;for(i=0;i<tmp.length;i++){j=i;tmp[i].attachEvent("onmouseover",function(){bbb(j)});}3.结果:所有的bbb(j)都变成了bbb(20)。(tmp这个数组元素总个数为21)...4.也就是说:bbb(j)中的j终于能与外部定义的j"有那么一点关联"了....但只能接收j的最后值,即j=20这个量.5.于是我就想到:attachEvent(事件,函数)这一函数会不会是在for语句执行完后它才会执行呢!!!如果是这样,还有什么办法能做到:tmp[0]-->bbb(0)****tmp[1]-->bbb(1)......各位大虾,帮帮忙呀!