Почему 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.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы