同意楼上,是闭包问题. 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);}); }
for(var i in this.items){ var item = this.items[i]; addEvent($G(item),'click',function(){obj.click(item);}); }改成 for(var i in this.items){ (function(){ var item = this.items[i]; addEvent($G(item),'click',function(){obj.click(item);}); })();
}
抱歉.. for(var i in this.items){ (function(){ var item = obj.items[i]; addEvent($G(item),'click',function(){obj.click(item);}); })();
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);});
}
var item = this.items[i];
addEvent($G(item),'click',function(){obj.click(item);});
}改成
for(var i in this.items){
(function(){
var item = this.items[i];
addEvent($G(item),'click',function(){obj.click(item);});
})();
}
for(var i in this.items){
(function(){
var item = obj.items[i];
addEvent($G(item),'click',function(){obj.click(item);});
})();