Кроме того, модификация может использоваться как это:
int a = 7;
b = a % 2;
b
равнялся бы 1. Поскольку 7 % 2 = 1
.
$this.css('height', 'auto');
var height = $this.height();
Один из способов получить размеры изображения - это динамически загрузить копию изображения с помощью javascript и получите его размеры:
// preload the image
var height, width = '';
var img = new Image();
var imgSrc = '/path/to/image.jpg';
$(img).load(function () {
alert('height: ' + img.height);
alert('width: ' + img.width);
// garbage collect img
delete img;
}).error(function () {
// image couldnt be loaded
alert('An error occurred and your image could not be loaded. Please try again.');
}).attr({ src: imgSrc });
Лучшее, что вы можете сделать, - это скрыть изображение, не задавая ширину и высоту, и использовать источник изображения для этого изображения в качестве исходного изображения. Затем вычислите размер этого скрытого изображения.
Или вы можете вычислить физический размер на стороне сервера и передать его скрытому элементу на странице и получить размер из значения этого скрытого элемента.
Мне кажется, что принятое решение изменяет внешний вид объекта. Иногда jQuery оказывается слишком полезным, и вы должны сказать ему, чтобы он не мешал. Если вы хотите использовать naturalWidth или naturalHeight, просто используйте тот, который уже существует, преобразовав объект jQuery в ссылку на собственный элемент браузера.
var Height = document.getElementById($(this).attr("id")).naturalHeight;