Neither this nor that works. Does anyone know what is going on??
Edit:
qwerty is simply called as “qwerty();” when in other pieces of code.
It is supposed to be indepedent.
Edit: I realize what is wrong. The problem lies with the i…
function qwerty () {
..... for loop that changes i ......
var that = this;
this.chara[i] = createlabel.....
this.chara[i].addEventListener('click', function(e) {
var j = e.source.id;
alert("hello word");
alert(this.chara[j].width); // I get the error here
});
this.chara[i].addEventListener('doubleclick', function(e) {
alert("hello word");
alert(that.chara[i].width); // I get the error here too.
});
}
Any JS problem relating to
thisis likely due to the way the function usingthisis called. Storing a reference tothisin yourthatvariable should let you reference it from within your nested functions, exactly the way you are doing it already – assuming thatqwerty()is called in a way that setsthisto the correct object in the first place. (Personally I like to call such a variableselfsince it more accurately reflects what the variable is doing.)However, in your function you say you get the error on this line:
Given that you say
this.chara[i].addEventListener(...)I’m guessing that thechara[i]variable holds a reference to a DOM element. If that is the case I’m guessing it is an element type that doesn’t have awidthproperty. Try this:https://developer.mozilla.org/en/CSS/width
That’s the best I can do for you without more information about what error you’re getting and how the
qwerty()function is called…