图像加载:JavaScript onLoad和Image::complete(Firefox3)
当将图像加载到JavaScript图像加载:JavaScript onLoad和Image::complete(Firefox3),javascript,jquery,firefox3.6,onload-event,Javascript,Jquery,Firefox3.6,Onload Event,当将图像加载到JavaScriptImage对象中时,我假设,一旦图像I触发了load事件,那么I.complete应该是true。这不是没有发生,就是(我怀疑更有可能)我的jQuery/JavaScript代码中有一个bug 代码(简单地说,但我很有信心这里是相关的) $img=$(' 这个控制台日志会触发我的一些图像,但绝不是大多数。我认为它永远不会触发。值得一提的是,我使用的是FireFox 3.6.18(因为它非常稳定,有很好的开发工具) 有人知道会发生什么吗?什么是$img指的是什么
Image
对象中时,我假设,一旦图像I
触发了load
事件,那么I.complete
应该是true
。这不是没有发生,就是(我怀疑更有可能)我的jQuery/JavaScript代码中有一个bug
代码(简单地说,但我很有信心这里是相关的)
$img=$('
这个控制台日志会触发我的一些图像,但绝不是大多数。我认为它永远不会触发。值得一提的是,我使用的是FireFox 3.6.18(因为它非常稳定,有很好的开发工具)
有人知道会发生什么吗?什么是$img
指的是什么
在onTileLoad
函数中,这个指的是$img
。如果$img
是一个jQuery对象(看起来像),它没有complete
属性。只有DOM对象才设置complete
属性
看看这个
希望这会有所帮助
干杯对不起,在所有这些之前,var$img=$('');
。现在进行相应编辑。但是在onTileLoad
中,这个
将不是$img
,它将是JavaScript图像
对象。这就是这个
在事件处理程序中的工作方式。如果我想要一个jQuery对象,我必须使用$(这个)
.Socomplete
应该设置在正确的对象上,事实上,大多数情况下都是这样的:正如我上面所说,“这个控制台日志会触发我的一些图像,但绝不是大多数图像。”是的……你是对的,忘了我说的^^我仍然在搜索问题出在哪里=)它似乎有效。。也许用你自己的网址试试?我不知道这个问题又是从哪里来的:它通常是有效的。问题是它并不总是有效的。问题是,当它不起作用时会发生什么。如果你不知道,好吧,但也许有人会知道。
$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)
};
....
};