87,910
社区成员
发帖
与我相关
我的任务
分享
var addEvent = function(obj,eventType,evtFun){
if(document.addEventListener){
obj.addEventListener(eventType,evtFun,false);
}
else if(document.attachEvent){
obj.attachEvent("on"+eventType,evtFun);
}
};
var $G = function(a){return document.getElementById(a);};
var TestClass = function(){
this.items = ['id1','id2','id3','id4'];
this.init();
};
TestClass.prototype.init = function(){
for(var i in this.items){
document.write('<div id='+this.items[i]+'>'+this.items[i]+'</div>');
}
var obj = this;
for(var i in this.items){
var item = this.items[i];
addEvent($G(item),'click',function(){obj.click(item);});
}
};
TestClass.prototype.click= function(a){
alert(a);//这里总是输出id4
};
var test = new TestClass();
var addEvent = function(obj,eventType,evtFun){
if(document.addEventListener){
obj.addEventListener(eventType,evtFun,false);
}
else if(document.attachEvent){
obj.attachEvent("on"+eventType,evtFun);
}
};
var $G = function(a){return document.getElementById(a);};
var TestClass = function(){
this.items = ['id1','id2','id3','id4'];
this.init();
};
TestClass.prototype.init = function(){
for(var i in this.items){
document.write('<div id='+this.items[i]+'>'+this.items[i]+'</div>');
}
for(var i in this.items){
var item = this.items[i];
this.addClick(item);
}
};
TestClass.prototype.addClick= function(a){
var obj = this;
addEvent($G(a),'click',function(){obj.click(a);});
};
TestClass.prototype.click= function(a){
alert(a);
};
var test = new TestClass();
for(var i in this.items){
var item = this.items[i];//这里的item只是对this.items[i]的一个引用,当执行到最一个item[i]的时候,所有的item都指向最后一个item[i]
addEvent($G(item),'click',function(){this.click(item);});
}