闭包问题代码如下:
<ul id="gallery">
<li>
<a href="#">dfdh1</a>
</li>
<li>
<a href="#">dfdh2</a>
</li>
<li>
<a href="#">dfdh3</a>
</li>
<li>
<a href="#">dfdh4</a>
</li>
</ul>
<script type="text/javascript">
var gallery=document.getElementById("gallery");
var links=gallery.getElementsByTagName("a");
for(var i = 0; i < links.length; i++){
links[i].onclick = function () {
alert(i);
}
}
</script>
不管点击那个链接弹出来的都是4,
解决方法:
<script type="text/javascript">
var gallery=document.getElementById("gallery");
var links=gallery.getElementsByTagName("a");
for(var i = 0; i < links.length; i++){
(function (i){
links[i].onclick = function (){
alert(i);
};
})(i); //立即执行函数
}
</script>