Ответ 1
Используйте imgLoad[0].width
и imgLoad[0].height
вместо этого или используйте this
вместо imgLoad
:
var imgLoad = $("<img />");
imgLoad.attr("src", ImageGallery.ImagesList[index] + "?" + new Date().getTime());
imgLoad.unbind("load");
imgLoad.bind("load", function () {
// Get image sizes
alert(this.width);
});
Рабочая демонстрация: http://jsfiddle.net/7twNk/
Это работает, потому что браузер загружает свойства height
/width
элемента при загрузке изображения. jQuery, с другой стороны, извлекает фактические видимые размеры элемента — это всегда будет 0, когда элемент не отображается.
Обратите внимание, что вам не нужно обертывать imgLoad
с помощью $()
, потому что это уже объект jQuery.