从未调用javascript image onload函数

时间:2016-10-27 09:32:17

标签: javascript

我在javascript中加载图片时遇到问题。似乎永远不会调用.onload函数,因此图片未标记为已加载。你能帮忙吗?

以下是代码:

select * 
from whatever
where ( create_date >= DATEADD(YEAR, DATEDIFF(YEAR,  0, GETDATE()), 0)
   and  create_date <  DATEADD(YEAR, DATEDIFF(YEAR, -1, GETDATE()), 0)
      )

由于

1 个答案:

答案 0 :(得分:2)

上下文#1

this.image.onload = function () {
    this.loaded = true;
};

this引用[object HTMLImageElement],而不是img实例。

上下文#2

现在,将代码更改为:

this.image.onload = function () {
    this.loaded = true;
}.bind(this);

当您执行new img("http://serban.ghita.org/imgs/serban.jpg");时,this会引用您的[object Object]

背景#3

现在,如果您执行img("http://serban.ghita.org/imgs/serban.jpg");newthis将引用[object Window]

<强>解决方案

这取决于this的背景。

  • 您可以使用bind
  • 进行更改
  • 或者通过声明和外部var _this = this;,然后在_this.loaded = true;内使用onload

代码:https://jsbin.com/pasumab/edit?js,console