可能是重复的问题:
JavaScript循环内部的事件处理程序 - 需要闭包吗?
我通过API调用获取了一些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);