Показать сообщение отдельно
  #1 (permalink)  
Старый 25.12.2018, 12:51
Новичок на форуме
Отправить личное сообщение для dropoff Посмотреть профиль Найти все сообщения от dropoff
 
Регистрация: 22.11.2012
Сообщений: 8

jQuery - высота блока как у соседнего - проблема с обновлением самой высоты
Всем привет.

Суть в следующем Есть галерея изображений. У нее есть основная картинка (большая) и с боку мелкие. При клике на мелкую я из data атрибута хватаю путь к большой картинке и заменяю у основной. Суть думаю ясная.

Есть два дива, один вокруг мелких, другой вокруг основного. Мне нужно брать высоту основного и добавлять к тому который вокруг мелких. Суть в том, чтобы при изменении высоты блока с основной - раздвигался или сжимался блок с мелкими.

Но, при подмене картинки мне возвращает прошлая высота, а не текущая. То есть я не могу получить высоту блока сразу после подмены картинки, хотя блок и увеличился по высоте. Только со второго клика.

this.images_blocks = function(a)
{
    // блок с которого берем высоту
    var image_height = a(".info-image-wrap").height();
    // блок, которому нужно выставить высоту
    var images_wrap = a(".info-images-wrap");

    images_wrap.height(image_height);

    // если изменили размер окна браузера
    a(window).on('resize', function(){
        images_wrap.height(image_height);
    });
}


Если кликнуть по определенным элементам(info-images-thumbnails), то высота меняется только со второго клика.

this.info = function(a)
{
    // выставляем высоту по дефолту
    core.scripts.images_blocks(a);

    // в случае, если кликнули на мелкую картинку, то обновляем высоту блока
    a('.info-images-thumbnails').on('click', 'a', function(e)
    {
        core.scripts.images_blocks(a);
    });
}


Сам HTML примерно такой
<div class="info-images">
	<div class="info-images-wrap">
		<ul class="info-images-thumbnails">
			<li><a href="большая_картинка" data-image="средняя_картинка"><img src="мелкая_картинка"></a></li>
			<li><a href="большая_картинка" data-image="средняя_картинка"><img src="мелкая_картинка"></a></li>
			<li><a href="большая_картинка" data-image="средняя_картинка"><img src="мелкая_картинка"></a></li>
			<li><a href="большая_картинка" data-image="средняя_картинка"><img src="мелкая_картинка"></a></li>
		</ul>
	</div>
	<div class="info-image-wrap">
		<a href="#"><img src="средняя_картинка"></a>
	</div>
</div>


То есть, при клике на info-images-thumbnails меняется высота info-image-wrap в зависимости от картинки в ней, а вот высота info-images-wrap меняется не сразу, а со второго клика. Если покликать несколько раз, то высота скачет через раз. То остается прежней высотой, то меняется как нужно.
Я так понимаю, что дело в подмене картинки и тем, что height обновляется не сразу.

Буду благодарен за помощь.
Ответить с цитированием