可能重复:
Event handlers inside a Javascript loop - need a closure?如何将对象传递给onclick事件
我通过API call.It得到一些JSON对象是如下因素的格式: -
{data:[{id:"1",name:"some1",url:"someurl1"},{id:"2",name:"some2",url:"someurl2"}...]}
我通过jsonp结果得到它,它被解析如下: -
function(results){
for(var i=0;i<10;i++){
item=document.createElement("div");
item.innerHTML=results.data[i].name;
item.onclick=function(){
console.log(results.data[i]); //--->this is where i am stuck
}
}
}
如何将特定对象从循环传递到onclick事件。我的意思是建立应与第一对象和第二个div的数据onclick事件应该从第二个对象中的数据的第一个div .. 请问我,如果任何更多的澄清需要
编辑: - 如果我做这样的事情: -
item.onclick=function(){
console.log(results.data[1])
}
我得到的是,在所有项目的onclick事件特定对象,但是这不是我想要的
编辑: - 这是怎么了,我终于解决了它。感谢DCoder指出的链接。
item.onclick =function(object){
return function(){
//do something with the object
}
}(obj);
这是臭名昭着的Javascript关闭问题。 – SLaks
在daffy之前可以多少次回答这个问题? – Shmiddty
@Smiddty请再试一次... – noname