2013-03-29 21 views
6

Mam jeden duży obraz i małe kciuki, próbuję zamienić ich src ze sobą. Tutaj zmieniam kciuk img w bottleWrapper img, ale chcę zamienić ich src. Pls pomóż!Zamień obraz src z jquery

HTML

<div class="bottlesWrapper"> 
    <img src="bottle1.png" /> 
</div> 

<div class="thumbs"> 
    <img src="bottle2.png" /> 
</div> 

SCRIPT

<script> 
$('.thumbs a').each(function() { 
    $(this).click(function() { 
     var aimg = $(this).find("img") 

     $('.bottlesWrapper img').fadeOut('fast',function(){ 
     $(this).attr('src', $(aimg).attr('src')).fadeIn('fast'); 
     }); 

    }); 
}); 
</script> 

EDIT

Dzięki wszystkim :)

I rzeczywiście zapomniałem dać się jedna informacja, że ​​mam różne kciuki, to odpowiedź pasuje najlepiej! Dziękuję wszystkim za wasz cenny wkład!

$('.thumbs img').click(function() { 
    var thmb = this; 
    var src = this.src; 
    $('.bottlesWrapper img').fadeOut(400,function(){ 
     thmb.src = this.src; 
     $(this).fadeIn(400)[0].src = src; 
    }); 
}); 
+1

Nie ma tagu wewnątrz kciuka –

+0

Zobacz także ten przykład 'Zamień galerię' z Design Chemical: http://www.designchemical.com/blog/index.php/jquery/jquery-image-swap-gallery/ (nie byłoby trudno dodać fadein/fadeout, jak sądzę) –

Odpowiedz

6

Do SWAP obrazy lubię:

LIVE DEMO

$('.thumbs img').click(function() { 
    var thmb = this; 
    var src = this.src; 
    $('.bottlesWrapper img').fadeOut(400,function(){ 
     thmb.src = this.src; 
     $(this).fadeIn(400)[0].src = src; 
    }); 
}); 

Jeśli masz kilka 'galerie' zrobić jak: http://jsbin.com/asixuj/5/edit

+0

Nopes, to się znowu zmienia tylko BIG img dla małego źródła obrazu ..Chcę tego na przykład. masz zielony obraz na wierzchu i kiedy klikniesz na czarny img thumb, chcę, aby czarny kciuk stał się różowy i wyświetla czarny img na górze .. "Zasadniczo chcesz zamienić dwa obrazy" Mam nadzieję, że dint mylić – itsMe

+0

@itsMe Cię mieć widziałeś moją edycję? Dokładnie to robi –

+0

To działa idealnie! Dzięki :) – itsMe

0

Spróbuj:

$('.thumbs img').click(function() { 
    var img_src = img.attr('src'); 

    $(this).fadeOut('fast',function(){ 
     $(this).attr('src', $('.bottlesWrapper img').attr('src')).fadeIn('fast'); 
    }); 

    $('.bottlesWrapper img').fadeOut('fast',function(){ 
     $(this).attr('src', img_src).fadeIn('fast'); 
    }); 
}); 

Należy dołączyć kliknij wydarzenia img tagów wewnątrz thumbs klasy, a następnie zmienić źródło obrazu.

+0

Nopes, to działa :(To zmienia tylko źródło butelekWrapper img, nie kciuk img – itsMe

+0

@itsMe, spróbuj zaktualizowanej odpowiedzi ... – Anujith

2

Ther ma <a> tag w swojej pytanie .. również zakładając jego img .. na cl ick kciuki img .. the bottlesWrapper dostanie zamienione ..

spróbować tej

aktualizowane

$('.thumbs img').click(function() { 
    var img=$(this).attr('src'); 

    $('.bottlesWrapper img').fadeOut('fast',function(){ 
    $(this).attr('src', img).fadeIn('fast'); 
    }); 

    $(this).fadeOut('fast',function(){ 
    var bottlersImg=$('.bottlesWrapper img').attr('src'); 
    $(this).attr('src', bottlersImg).fadeIn('fast'); 
    }); 

}); 

UWAGA, i nie trzeba each pętli ... jQuery dawkę że przy użyciu selektora klasy działa ..

+0

Nie działa :(To zmienia tylko źródło butelekWrapper img, nie kciuków img – itsMe

+0

zaktualizowałem moją odpowiedź ... Wypróbuj – bipen

+0

Bardzo dziękuję :) Naprawdę pomocna – itsMe

1

Ponieważ nie masz znacznika <a> w .thumb Twój kod nie działa w ogóle, zamiast kliknij samego .thumb:

$('.thumbs').click(function() { 
    var thumbsimgSrc = $(this).find("img").attr('src'); 
    var bottleImgSrc = $('.bottlesWrapper img').attr('src'); 

    $(this).find("img").attr('src', bottleImgSrc); 

    $('.bottlesWrapper img').fadeOut('fast').promise().done(function(){ 
     $(this).attr('src', thumbsimgSrc).fadeIn('fast'); 
    }); 
    }); 
}); 

I .thumb jest sam w sobie jest zbiorem więc nie trzeba wykonać iterację .each() metody.

+0

Działa. Dziękuję :) – itsMe

+0

@itsMe Dzięki, że rzuciłeś okiem na ten. – Jai

+0

Dziękuję bardzo, bardzo Jai :) – itsMe