У меня есть приложение, которое открывает div с несколькими миниатюрами изображений. При нажатии на изображение открывается новый div с изображением в полном размере, и div должен иметь ту же ширину и высоту, что и изображение.
Из php-файла я получаю объекты с несколькими параметрами, например. thumbWidth / thumbHeight и width / height. Что мне нужно сделать, это сохранить ширину и высоту для каждого изображения, чтобы я мог открыть div с правильным размером. Каков наилучший способ сделать это? Я думаю, я мог бы хранить ширину и высоту в многомерном массиве, но я думаю, что есть лучший способ?
Как видно из приведенного ниже кода, я пытался сохранить, например. this.width в переменной 'imgWidth' и примените его к событию, но каждое изображение получает последние полученные ширину и высоту, чтобы это не сработало.
$.getJSON('...getJSONThumbs.php', function(json) {
$.each(json, function() {
if (this.thumbWidth > maxWidth){
maxWidth = this.thumbWidth;
}
if (this.thumbHeight > maxHeight){
maxHeight = this.thumbHeight;
}
var box = $('<div/>', {
'class': 'imgDiv',
'width': maxWidth,
'height': maxHeight,
}).appendTo('.imageArea:last');
var a = $('<a/>', {
'href': '#',
}).appendTo(box)
var img = $('<img/>', {
'src': 'pics/' + this.fileName,
'width': this.thumbWidth,
'height': this.thumbHeight,
}).appendTo(a);
imgWidth = this.width;
imgHeight = this.height;
box.click(function(event) {
event.preventDefault();
console(imgWidth + " " + imgHeight); // always the last images width and height
$('#desktop').css("background-image", "url(" + img.attr('src') + ")");
});
jQuery(loaderImage).hide();
});
});