У меня есть очень простой код, который раздражающе работал и для жизни меня я не могу понять, почему он теперь неудачу:Получение ширины и высоты изображения с JQuery
function imageSize(img){
var theImage = new Image();
theImage.src = img.attr('src');
var imgwidth = theImage.width;
var imgheight = theImage.height;
alert(imgwidth+'-'+imgheight);
}
«IMG» переменная существо передается в объект IMG, полученный из:
jQuery('img')
.each(function(){
var imgsrc = jQuery(this);
imageSize(imgsrc);
});
Ну, что именно представляет собой проблема? Выглядит хорошо для меня. Кроме того, почему вы используете полномасштабное слово «jQuery»? Проблемы совместимости? Почему бы вам просто не использовать «$»? –
Не стоит забывать, что если изображение не будет полностью загружено при запуске этого кода, ширина и высота будут возвращены как ноль или, возможно, какое-то другое неправильное значение. – Blazemonger
Обнаружение точно, когда изображение полностью загружено, удивительно сложно, так как событие '.load' не срабатывает, если изображение вытаскивается из кеша. См. [Этот вопрос] (http://stackoverflow.com/q/3554185/901048) для решения этой проблемы. – Blazemonger