Проблемы со слайдером и функцией prepend()

278
22 января 2017, 16:49

Такая дилемма. Сделал слайдер, всё работает хорошо кроме одного момента: если нажимать на одну картинку 2 раза то большая версия исчезает совсем. Я полагаю что prepend() не срабатывает.

$('.laast img').each(function(){ 
            var oldImg = $(this).attr('src');  
            var ext= /(\.\w{3,4}$)/; 
            var newImg = oldImg.replace(ext,'_q$1'); 
            var newI= $('<img src="'+newImg+'">'); 
        $(this).click(function(){ 
            newI.hide(); 
         $('.big').prepend(newI); 
            newI.fadeIn(1000); 
            $('.big img:last').fadeOut(1000,function(){ 
                $(this).remove(); 
            }); 
        }); 
         
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<div class="laast"> 
    <p>Заголовок заголовок</p> 
    <img src="image/small/blue.jpg" alt="">  
    <img src="image/small/green.jpg" alt="">  
    <img src="image/small/orange.jpg" alt="">  
    <img src="image/small/purple.jpg" alt="">  
    <img src="image/small/red.jpg" alt="">  
    <img src="image/small/slide1.jpg" alt="">  
    <div class="big"> 
        <img src="image/small/blue_q.jpg" alt="" class="q2"> 
         
    </div> 
    </div>

Answer 1

prepend, конечно, срабатывает.

"на одну картинку 2 раза то большая версия исчезает" - потому что newI и $('.big img:last') соответствуют одному и тому же DOM-элементу. То есть новый DOM-элемент не добавляется, он уже существует внутри jQuery-евской обертки, и Ваш код добавляет его к его же собственному родителю.

if (newI[0] != $('.big img:last')[0]) {
  $('.big img:last').fadeOut(1000,function(){
    $(this).remove();
  });
}

или

$('.big img:last').not(newI).fadeOut(1000,function(){
  $(this).remove();
});
READ ALSO
Как проверить, сохранены ли все данные из поле на странице?

Как проверить, сохранены ли все данные из поле на странице?

Добрый деньИмеется таблица с товарами

294
конфликт в jquery.min

конфликт в jquery.min

У меня joomla 3

249
WP пересчет размера блока слайдера

WP пересчет размера блока слайдера

WordpressПлагин Ultimate Responsive Slider Пример страницы - http://lavds-wordpress

258
Как сделать animation для мобильного Safari рабочим?

Как сделать animation для мобильного Safari рабочим?

Всем доброго дня! Может кто подсказать как можно было сделать свойство animation, transform и тд

292