用jquery交换图像src

时间:2013-03-29 06:05:51

标签: jquery image swap attr src

我有一个大图像和小拇指,我试图互相交换他们的src。这里我在bottleWrapper img中更改拇指img,但我想交换他们的src。请帮助!

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>

修改

全部谢谢:)

我实际上忘了给出一个我有各种拇指的信息,这个答案最适合!谢谢大家的宝贵意见!

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

4 个答案:

答案 0 :(得分:6)

SWAP 图片的确如下:

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

如果您有多个'画廊',请执行以下操作:http://jsbin.com/asixuj/5/edit

答案 1 :(得分:3)

你的问题中没有<a>标签。所以假设它img ..点击拇指img .. bottlesWrapper将会被发送..

试试这个

<强>更新

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

});

注意:并且您不需要each循环... jquery剂量,通过使用类选择器工作..

答案 2 :(得分:1)

尝试:

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

您应该将点击事件附加到img类内的thumbs标记,然后更改图像来源。

答案 3 :(得分:1)

由于<a>中没有.thumb标记,您的代码根本无法使用,请尝试点击.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');
    });
  });
});

.thumb本身就是一个集合,因此您无需迭代.each()方法。