当将图像加载到JavaScript Image
对象中时,我会假设,一旦load
事件被触发为图像i
,那么i.complete
应该是true
。要么没有发生,要么(更有可能,我怀疑)我的jQuery/JavaScript代码中有错误。
代码(剥离的方式,但我很自信,相关的是在这里)
$img = $('<img />'); // This line added by edit for clarification
var eventData = {
sheet: this,
resolution: resolution,
i: i,
};
$img.bind('load', eventData, onTileLoad);
$img.attr('src', tile.src);
onTileLoad = function(ev) {
var sheet = ev.data.sheet;
var resolution = ev.data.resolution;
var i = ev.data.i;
if (!this.complete) {
console.log('Image load not complete: sheet ' + sheet.sheetName +
', resolution ' + resolution + ' tile ' + i)
};
....
};
这个控制台日志触发了我的一些映像,但绝不是大多数映像。我认为它不应该触发。不管怎样,我使用的是FireFox 3.6.18(因为它非常稳定,并且有很好的开发工具)。
有谁知道是怎么回事吗?
$img
指的是什么?
在
onTileLoad
函数中,this
指$img
。如果$img
是一个jQuery对象(就像它看起来的那样),它没有complete
属性。complete
属性只在DOM对象上设置。
看这个test case
。
希望这对你有帮助,
欢呼