删除部分img src

时间:2013-12-05 10:12:37

标签: jquery image src

我有20张图片,同样的20张图片用不同颜色调用同名,但第二张带有后缀" _blu" - > " google.jpg"另一个" google_blu.jpg" 我会使用鼠标悬停将其从一个更改为另一个。

我试过这样但是我不知道如何定位图像(我可以说"班级内的每一个图像.hovertondo)

jQuery(document).ready(function($) {
$(".hovertondo").css("opacity","1");

    $(".hovertondo").hover(function () {
        var src = $(this).attr('src');
        $(this).attr('src', src.replace('_blu', ''));
        $(this).stop().animate({opacity: 0}, "slow");

        },function () {$(this).stop().animate({opacity: 1}, "slow");
                       $(this).attr('src', src.replace('_blu', ''));

        });
});

HTML

<div class="conttondodentosofia">
<img src="http://studiodentisticocova.com/img/trattamenti/carie_blu.jpg" />
<div class="hovertondo">Carie</div>
</div>

我用firebug打开它,错误是

  

&#34; TypeError:$(...)。attr(...)未定义&#34; (谈论这一行$(this).attr(&#39; src&#39;,src.replace(&#39; _blu&#39;,&#39;&#39;));)

有人帮我吗? :) 谢谢!

1 个答案:

答案 0 :(得分:1)

您的mouseleave处理程序(src方法的第二个参数)中未定义

hover

更改此

$(".hovertondo").hover(function () {
        var src = $(this).attr('src');
        $(this).attr('src', src.replace('_blu', ''));
        $(this).stop().animate({opacity: 0}, "slow");

        },function () {$(this).stop().animate({opacity: 1}, "slow");
                       $(this).attr('src', src.replace('_blu', ''));

        });

$(".hovertondo").hover(function () {
        var src = $(this).attr('src');
        $(this).attr('src', src.replace('_blu', ''));
        $(this).stop().animate({opacity: 0}, "slow");

        },function () {
        var src = $(this).attr('src');
        $(this).stop().animate({opacity: 1}, "slow");
        $(this).attr('src', src.replace('_blu', ''));

        });

顺便说一下,你在这两种情况下都在$(this).attr('src', src.replace('_blu', ''));。有一种情况你需要在你的src中添加'_blu'。它会提供类似的东西:$(this).attr('src', src.replace('.jpg', '_blu.jpg'));

修改

您可以使用fadeOut方法修改图像:

$('this').fadeOut(300, function(){
      $(this).attr('src', src.replace('_blu', '')).bind('onreadystatechange load', function(){
         if (this.complete) $(this).fadeIn(300);
      });
   });