2013-03-29 33 views
6

Tôi có một hình ảnh lớn và ngón tay cái nhỏ, tôi đang cố gắng trao đổi src của họ với nhau. Ở đây tôi đang thay đổi ngón tay cái img trong bottleWrapper img, nhưng tôi muốn trao đổi src của họ. Xin giúp đỡ!Trao đổi hình ảnh src với 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

Cảm ơn tất cả :)

tôi thực sự quên đưa ra một thông tin mà tôi có ngón tay khác nhau, điều này trả lời phù hợp nhất! Cảm ơn tất cả vì những đầu vào quý giá của bạn!

$('.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

không có thẻ bên trong ngón tay cái –

+0

Xem thêm ví dụ 'Thư viện hoán đổi' này từ Hóa chất thiết kế: http://www.designchemical.com/blog/index.php/jquery/jquery-image-swap-gallery/ (sẽ không khó để thêm fadein/fadeout tôi đoán) –

Trả lời

6

Để SWAP hình ảnh làm thích:

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; 
    }); 
}); 

Nếu bạn có nhiều 'trưng bày' làm như: http://jsbin.com/asixuj/5/edit

+0

Nopes, điều này một lần nữa thay đổi chỉ BIG img đối với nguồn hình ảnh nhỏ ..Tôi muốn điều đó cho ví dụ. bạn có hình ảnh màu xanh lá cây trên đầu và khi bạn nhấp vào ngón tay cái img màu đen, tôi muốn ngón tay cái màu đen trở thành màu hồng và hiển thị màu đen img ở đầu .. 'Về cơ bản muốn trao đổi hai hình ảnh' Tôi hy vọng i dint nhầm lẫn u – itsMe

+0

@itsMe có bạn nhìn thấy bản chỉnh sửa của tôi? Nó thực hiện chính xác rằng –

+0

Điều này làm việc hoàn hảo! Cảm ơn :) – itsMe

0

Hãy thử:

$('.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'); 
    }); 
}); 

Bạn nên đính kèm vào các sự kiện để img thẻ bên thumbs lớp và sau đó thay đổi nguồn hình ảnh.

+0

Nopes, nó dint làm việc: (nguồn thay đổi duy nhất của nó của chaiWrapper img, không ngón tay cái img – itsMe

+0

@itsMe, hãy thử cập nhật trả lời ... – Anujith

2

ther không <a> thẻ trong của bạn câu hỏi .. cũng giả định img .. của nó trên cl ick của thumbs img .. các bottlesWrapper sẽ được swaped ..

thử này

cập nhật

$('.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'); 
    }); 

}); 

LƯU Ý: và bạn không cần phải each loop ... jquery liều bằng cách sử dụng công cụ chọn lớp hoạt động ..

+0

Không hoạt động :(Nguồn thay đổi duy nhất của các chaiWrapper img, không phải của ngón tay cái img – itsMe

+0

cập nhật câu trả lời của tôi ... thử nó ra – bipen

+0

Cảm ơn rất nhiều :) Thực sự hữu ích – itsMe

1

Vì bạn không có thẻ <a> trong .thumb mã của bạn sẽ không hoạt động ở tất cả, thay vì cố gắng nhấn vào .thumb bản thân:

$('.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'); 
    }); 
    }); 
}); 

.thumb là chính nó là một bộ sưu tập, do đó bạn không cần phải lặp qua .each() phương pháp.

+0

Nó hoạt động .. Cảm ơn :) – itsMe

+0

@itsMe Cảm ơn bạn đã xem cái này. – Jai

+0

Cảm ơn bạn rất nhiều Jai :) – itsMe

Các vấn đề liên quan