Загрузка изображения: JavaScript onLoad и Image :: complete (FireFox 3) - PullRequest
1 голос
/ 05 июля 2011

При загрузке изображений в объект 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 (потому что он очень стабилен и имеет хорошие инструменты разработчика).

Кто-нибудь знает, что может происходить?

1 Ответ

0 голосов
/ 05 июля 2011

Что означает $img?

В функции onTileLoad, this относится к $img.Если $img является объектом jQuery (как это выглядит), у него нет свойства complete.Свойство complete установлено только для объекта DOM.

Посмотрите на это test case.

Надеюсь, это поможет,

Приветствия

...