Я работал над скриптом, который изменяет размер изображений в соответствии с размером контейнера. Я записал следующий код:JQuery переменная в функции странное поведение
$(function() {
$('.postbody .content img').each(function() {
var containerWidth = $(this).parent().width();
if ($(this).width() > containerWidth) {
$(this).width(containerWidth);
$(this).wrap('<a href="' + $(this).attr('src') + '" target="_blank"></a>');
}
});
});
Но он работал только для первого элемента в цикле. С моим предыдущим опытом с вопросами после назначения методов JQuery переменного я изменил код немного:
$(function(){
$('.postbody .content img').each(function() {
if ($(this).width() > $(this).parent().width()) {
$(this).width($(this).parent().width());
$(this).wrap('<a href="'+$(this).attr('src')+'" target="_blank"></a>');
}
});
});
И теперь он работает отлично. Но я не могу понять, как это сделать. Должна ли переменная containerWidth
получать новое значение при каждом вызове функции каждым циклом?
EDIT: Обратите внимание, что все контейнеры равного размера.
Да, он будет обновлен. Но не если этот конкретный код работает до загрузки страницы. –
он должен работать, можете ли вы создать проблему в демонстрации .. только вам придется подождать, пока изображение загрузится. –
http://jsfiddle.net/arunpjohny/594e3ghn/ –