Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
图像加载:JavaScript onLoad和Image::complete(Firefox3)_Javascript_Jquery_Firefox3.6_Onload Event - Fatal编程技术网

图像加载:JavaScript onLoad和Image::complete(Firefox3)

图像加载: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指的是什么

当将图像加载到JavaScript
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对象,我必须使用
$(这个)
.So
complete
应该设置在正确的对象上,事实上,大多数情况下都是这样的:正如我上面所说,“这个控制台日志会触发我的一些图像,但绝不是大多数图像。”是的……你是对的,忘了我说的^^我仍然在搜索问题出在哪里=)它似乎有效。。也许用你自己的网址试试?我不知道这个问题又是从哪里来的:它通常是有效的。问题是它并不总是有效的。问题是,当它不起作用时会发生什么。如果你不知道,好吧,但也许有人会知道。
$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)
    };

    ....
};