我一直在尝试这样做
function test()
{
$.getJSON("http://myurl.com",function (data){
for( i=0; i<data.length; i++){
test = createElement('img');
test.onclick = function (){ myotherfun(data[i]); }
}
}
}
function myotherfun(data)
{
alert(data);
}
错误消息指出范围未涵盖data
。
有人可以解释为什么会这样吗?
答案 0 :(得分:1)
现在您已经编辑了问题,我可以看到问题XD
问题是onclick
函数将使用data
和(更重要的)i
的当前值。所以基本上它正在寻找data[data.length]
,length
的定义不存在。
相反,您需要“锁定”迭代器的值。这是你如何做到的:
for(i=0; i<data.length; i++) {
(function(i) {
// do stuff that relies on i
})(i);
}