javascript loop overwriting createjs object -


i have code (i've stripped basics)

for (var = 0, len = 26; < len; i++) {     var chr = string.fromcharcode(65 + i);      var letter_container = new createjs.container();     letter_container.chr = chr;      letter_container.addeventlistener("mouseover", function(event) {          console.log(letter_container.chr);     }); } 

so loops through alphabet , creates object each letter in alphabet. want when mouseover on container (i have taken out actual button graphic clarity) outputs character i'm hovering over.

in case, whichever letter hover on outputs z.

how make each object unique?

in couple of words, javascript function scope...

each time round loop letter_container gets updated , time mouseover events fire chr == z.

best way round wrap contents of loop in function, thus.

for (var = 0, len = 26; < len; i++) {     (function(chrcode){         var chr = string.fromcharcode(65 + i);          var letter_container = new createjs.container();         letter_container.chr = chr;          letter_container.addeventlistener("mouseover", function(event) {              console.log(letter_container.chr);         });     })(i); } 

this preserve container letter_container expecting.


Comments