Javascript ";“那是什么?”;不起作用
这个和那个都不起作用。有人知道发生了什么吗 编辑: qwerty在其他代码段中简称为“qwerty();”。 它应该是独立的 编辑:我意识到什么是错的。问题在于我Javascript ";“那是什么?”;不起作用,javascript,object,titanium,this,Javascript,Object,Titanium,This,这个和那个都不起作用。有人知道发生了什么吗 编辑: qwerty在其他代码段中简称为“qwerty();”。 它应该是独立的 编辑:我意识到什么是错的。问题在于我 function qwerty () { ..... for loop that changes i ...... var that = this; this.chara[i] = createlabel..... this.chara[i].addEventListener('click', function(e) {
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.
});
}
与this
相关的任何JS问题都可能是由于调用使用this
的函数的方式造成的。将对this
的引用存储在that
变量中,应该允许您从嵌套函数中引用它,这正是您正在执行的方式-假设调用qwerty()
的方式首先将this
设置为正确的对象。(就我个人而言,我喜欢将这种变量称为self,因为它更准确地反映了变量的作用。)
但是,在函数中,您说您在这一行中得到了错误:
that.chara[i].width
假设您说this.chara[i].addEventListener(…)
我猜chara[i]
变量包含对DOM元素的引用。如果是这种情况,我猜它是一种没有width
属性的元素类型。试试这个:
that.chara[i].style.width
这是我能为您做的最好的事情,没有更多关于您得到的错误以及如何调用
qwerty()
函数的信息…您得到的错误是什么?这个函数是如何调用的?我定义的变量在哪里?事件绑定函数是异步的,因此i的值可能不是您期望的值。更正我之前的注释。即使在纠正i之后,仍然存在这个/那个问题。