Почему JQuery библиотека для ресайза изображений не срабатывает на подгруженные Ajax блоки?

Есть JavaScript библиотека для ресайза изображений - jQuery NailThumb, она хорошо работает.
Выглядит следующим образом:

screen.png

Картинка встала под размер.

А вот подгруженные ajax'ом, на них библиотека не реагирует. Т.е индитификатор стоит, но библеотека не работает с ним.

screen.png

Вопрос таков как можно решить проблему, с тем что библеотека запускается один раз при загрузке страницы, тогда как нужно что бы при каждом .appened('
Сам код:
<script>
jQuery(document).ready(function() {
                jQuery('.nailthumb-container').nailthumb({method:'resize',fitDirection:' center'}); //width:166,height:79,
            });
</script>


function addTovar (val){
    // добавляет товар
//    alert(val.image)
    var block = $('#tovar_block');
    block.append('' +
        '<li class="catalog-elements-ul-li parent">' +
        '   <div class="catalog-elements-ul-li-photo">' +
        '       <a href="#" class="nailthumb-container">' +
        '           <img src="/img/product/smal/'+val.art+'_0.jpg.jpg">' +
        '       </a>' +
        '       <div class="tovar-sravni">' +
        '           <input type="checkbox" name="check">' +
        '       </div>' +
        '   </div>' +
        '   <div class="catalog-elements-ul-li-name">' +
        '       <a href="#" class="catalog-elements-ul-li-name-link">'+val.name+'</a>' +
        '       <span class="catalog-elements-ul-li-name-text">'+val.title+'</span>' +
        '       <div class="catalog-elements-ul-li-name-el">' +
        '           <a href=""><strong>Отзывы</strong> <span>4</span></a>' +
        '           <a href=""><strong>Описание</strong></a>' +
        '           <a href=""><strong>Фото</strong></a>' +
        '       </div>' +
        '   </div>' +
        '   <div class="catalog-elements-ul-li-add">' +
        '       <span class="tovar-list-price">'+val.price+' <span>₷</span></span>' +
        '       <div class="tovar-star parent">' +
        '           <span class="star-on"></span>' +
        '           <span class="star-on"></span>' +
        '           <span class="star-on"></span>' +
        '           <span class="star-on"></span>' +
        '           <span class="star-on"></span>' +
        '       </div>' +
        '       <span class="code-tovar">Код товара: '+val.art+'</span>' +
        '       <button id="catalog-add">В корзину<span></span></button>' +
        '   </div>' +
        '</li>');

}
  • Вопрос задан
  • 3084 просмотра
Решения вопроса 1
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
простой способ сначала попробуйте
Спойлер
function addTovar (val){
    // добавляет товар
//    alert(val.image)
    var block = $('#tovar_block');
    block.append('' +
        '<li class="catalog-elements-ul-li parent">' +
        '   <div class="catalog-elements-ul-li-photo">' +
        '       <a href="#" class="nailthumb-container">' +
        '           <img src="/img/product/smal/'+val.art+'_0.jpg.jpg">' +
        '       </a>' +
        '       <div class="tovar-sravni">' +
        '           <input type="checkbox" name="check">' +
        '       </div>' +
        '   </div>' +
        '   <div class="catalog-elements-ul-li-name">' +
        '       <a href="#" class="catalog-elements-ul-li-name-link">'+val.name+'</a>' +
        '       <span class="catalog-elements-ul-li-name-text">'+val.title+'</span>' +
        '       <div class="catalog-elements-ul-li-name-el">' +
        '           <a href=""><strong>Отзывы</strong> <span>4</span></a>' +
        '           <a href=""><strong>Описание</strong></a>' +
        '           <a href=""><strong>Фото</strong></a>' +
        '       </div>' +
        '   </div>' +
        '   <div class="catalog-elements-ul-li-add">' +
        '       <span class="tovar-list-price">'+val.price+' <span>₷</span></span>' +
        '       <div class="tovar-star parent">' +
        '           <span class="star-on"></span>' +
        '           <span class="star-on"></span>' +
        '           <span class="star-on"></span>' +
        '           <span class="star-on"></span>' +
        '           <span class="star-on"></span>' +
        '       </div>' +
        '       <span class="code-tovar">Код товара: '+val.art+'</span>' +
        '       <button id="catalog-add">В корзину<span></span></button>' +
        '   </div>' +
        '</li>');
        jQuery('.nailthumb-container').nailthumb({method:'resize',fitDirection:' center'});
}

Ответ написан
Пригласить эксперта
Ответы на вопрос 1
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
jQuery(document).ready(function() {
jQuery('.nailthumb-container').nailthumb({method:'resize',fitDirection:' center'}); //width:166,height:79,
});

Если все правильно понял, то помимо события ready, Вам нужно повесить функцию ресайза на событие appened.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы