Возможно, вы захотите переключить вызовы .html()
и .onload()
.
Если изображение загружается из кэша, я предполагаю, что вызов .html()
завершается до у сценария была возможность присоединить обработчик функции к событию onload
изображения.Таким образом, эффективно обходя само событие загрузки (поскольку изображение уже загружено ).
Если оно все еще загружает изображение (т.е. не кэшируется), времени для вызова будет более чем достаточно.onload
присоединяется до того, как изображение полностью завершает рендеринг.
Пока вы это делаете, вы можете захотеть сделать это способом jQuery, просто так вы присоединяете события более похоже на DOM2, чем на DOM0.
var image = $('<img/>', {
src : 'http://mydomain.com/image.png'
}).load(function () {
alert(this.width);
})
// maybe clear container before if you want
.appendTo(container);
Если мы собираемся установить src
после onload
, мы могли бы сделать это вместо этого:
var image = $('<img/>')
.load(function () {
alert(this.width);
})
.attr('src','http://mydomain.com/image.png')
.appendTo(container)
;
Надеюсь, это работает чисто.