首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

急闭包有关问题

2012-11-08 
急,在线等,闭包问题imgs document.getElementsByTagName(img)for(var i 0 i imgs.length i++){v

急,在线等,闭包问题
imgs = document.getElementsByTagName("img");
  for(var i = 0; i< imgs.length; i++){
   
  var src = imgs[i].attributes["src"].value;
  imgs[i].onclick = function(){ abc(src);};
  }

亲们,这个怎么解决,我想要点击不同的图片传进去,不同图片的src,结果现在这个,每次图片的点击事件,都传进去最后一张图片的src

[解决办法]

JScript code
imgs = document.getElementsByTagName("img");for(var i = 0; i< imgs.length; i++){        var src = imgs[i].attributes["src"].value;    (function(_src){            imgs[i].onclick = function(){ console.log(_src);};    })(src);                }
[解决办法]
JScript code
    imgs = document.getElementsByTagName("img");    for (var i = 0; i < imgs.length; i++) {        //var src = imgs[i].attributes["src"].value;        imgs[i].onclick = function () { alert(this.src); };    }
[解决办法]
1楼可以,或者你可以把绑定事件的那块放入一个单独的函数中,把需要的参数以形参的形式传过去,也可以解决这个问题,其实就是作用域的问题~~
[解决办法]
天天都有这种问题
为什么不变通一下 闭包很难么 非要用闭包么
for循环的时候给一个属性 在里面不就能取了么 很容易啊
EG:
var oImg = null;
for(var i = 0; i< imges.length; i++){
oImg.index = i;
oImg.onclick = function(){ alert(this.index)};
}

热点排行